папки імпорту можна отримати, додавши такий вихідний код:
import sys
print sys.path
Прикладом автоматичного створення символічного посилання буде:
ln -s \`pip show em | grep "Location"| cut -d " " -f2\` \`python -m site --user-site\`
замість "em" ви можете використовувати інший пакет, який ви "щойно встановили, але python його не бачить"
нижче я поясню більш докладно, як це вимагається в коментарі.
припустимо, ви встановили модуль python em або pyserial за допомогою наступної команди (приклади стосуються ubuntu):
sudo pip install pyserial
і результат виглядає так:
Collecting pyserial
Downloading pyserial-3.3-py2.py3-none-any.whl (189kB)
100% |████████████████████████████████| 194kB 2.3MB/s
Installing collected packages: pyserial
Successfully installed pyserial-3.3
питання буде наступним - python не бачить модуль pyserial, чому? тому що місце, де був встановлений модуль, не є тим, що шукає python для вашого конкретного облікового запису користувача.
рішення - ми повинні створити символічне посилання із шляху, куди прибув pyserial, до шляху, де шукає ваш python.
Команда створення символічного посилання буде такою:
ln -s <what_to_link> <where_to_link>
замість того, щоб вводити точне місце, ми просимо pip повідомити нам, де він зберігав модулі, виконавши команду:
pip show pyserial | grep "Location"| cut -d " " -f2
замість того, щоб вводити точне місце розташування, ми просимо python повідомити нам, де він шукає встановлені модулі, виконавши команду:
python -m site --user-site
обидві команди повинні бути захищені символом "` "(зазвичай ліворуч від вашої кнопки 1 для американських клавіатур)
в результаті буде надана наступна команда для ln і буде створено відсутнє символічне посилання:
ln -s /usr/local/lib/python2.7/dist-packages /home/<your_username>/.local/lib/python2.7/site-packages
або щось подібне, залежно від типових налаштувань дистрибутива та python / pip.