Import folderów można wyodrębnić, dodając następujący kod źródłowy:
import sys
print sys.path
Przykładem automatycznego generowania linków symbolicznych byłoby:
ln -s \`pip show em | grep "Location"| cut -d " " -f2\` \`python -m site --user-site\`
zamiast "em" możesz użyć innego pakietu, który właśnie "zainstalowałeś, ale Python go nie widzi"
poniżej wyjaśnię bardziej szczegółowo, o co proszono w komentarzu.
załóżmy, że zainstalowałeś moduł Pythona em lub pyserial za pomocą następującego polecenia (przykłady dotyczą ubuntu):
sudo pip install pyserial
a wynik wygląda tak:
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
pytanie byłoby następujące - python nie widzi pyserialu modułu, dlaczego? ponieważ lokalizacja, w której moduł został zainstalowany, nie jest tą, której Python szuka dla twojego konkretnego konta użytkownika.
rozwiązanie - musimy utworzyć dowiązanie symboliczne ze ścieżki, z której dotarł pyserial, do ścieżki, której szuka Twój python.
Polecenie tworzenia łącza symbolicznego wyglądałoby tak:
ln -s <what_to_link> <where_to_link>
zamiast wpisywać dokładną lokalizację, prosimy pip, aby powiedział nam, gdzie przechował moduły, wykonując polecenie:
pip show pyserial | grep "Location"| cut -d " " -f2
zamiast wpisywać dokładną lokalizację, prosimy Pythona, aby powiedział nam, gdzie szuka instalowanych modułów, wykonując polecenie:
python -m site --user-site
oba polecenia muszą być poprzedzone znakiem "` "(zwykle po lewej stronie przycisku 1 w przypadku klawiatur amerykańskich)
w rezultacie dla ln zostanie dostarczone następujące polecenie i zostanie utworzony brakujący link symboliczny:
ln -s /usr/local/lib/python2.7/dist-packages /home/<your_username>/.local/lib/python2.7/site-packages
lub coś podobnego, w zależności od twojej dystrybucji i domyślnych ustawień python / pip.