В настоящее время я работаю над Pycharm с удаленным интерпретатором Python (miniconda3 / bin / python).
Поэтому, когда я набираю echo $PATH
на удаленном сервере, он печатает /home/woosung/bin:/home/woosung/.local/bin:/home/woosung/miniconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Я создал проект в Pycharm и установил удаленный интерпретатор Python как miniconda3 python, он хорошо работает, когда я просто запускаю несколько *.py
файлов.
Но когда я набрал несколько os.system()
строк, произошли странные вещи.
Например, в test.py
из проекта Pycharm
import os
os.system('echo $PATH')
os.system('python --version')
Выходные данные
ssh://woosung@xxx.xxx.xxx.xxx:xx/home/woosung/miniconda3/bin/python -u /tmp/pycharm_project_203/test.py
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Python 2.7.12
Process finished with exit code 0
Я попытался выполнить ту же команду на удаленном сервере,
woosung@test-pc:~$ echo $PATH
/home/woosung/bin:/home/woosung/.local/bin:/home/woosung/miniconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
woosung@test-pc:~$ python --version
Python 3.6.6 :: Anaconda, Inc.
PATH иВерсии питона совершенно разные!Как я могу это исправить?
Я уже пытался добавить os.system('export PATH="$PATH:$HOME/miniconda3/bin"')
к test.py
.Но он все равно дает $PATH
. (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
)
РЕДАКТИРОВАТЬ
Благодаря комментарию @Dietrich Epp, я успешно добавляю путь интерпретатора в оболочку$ PATH.(os.environ["PATH"] += ":/home/woosung/miniconda3/bin"
)
Но я застрял в более основной проблеме.Когда я добавляю путь и выполняю команду некоторый файл *.py
, включающий библиотеку import
, которая есть только в miniconda3, оболочка выдает ImportError
.
Например, в test.py
import matplotlib
os.environ["PATH"] += ":/home/woosung/miniconda3/bin"
os.system("python import_test.py")
и import_test.py
import matplotlib
И когда я запускаю test.py
,
Traceback (most recent call last):
File "import_test.py", line 1, in <module>
import matplotlib
ImportError: No module named matplotlib
Похоже, что оболочка не понимает, как использовать модифицированный $ PATH.