Почему версии python отличаются при вызове из терминала и из Atom - PullRequest
0 голосов
/ 18 декабря 2018

Когда я запускаю Python из терминала и из Atom, вызываются разные версии python.Как следствие, есть пакеты, которые я могу без проблем вызывать из терминала, но не могу звонить с Atom.Вот подробности:

При вызове python из terminal я получаю версию 3.7.1

$ python
Python 3.7.1 | packaged by conda-forge | (default, Nov 13 2018, 09:50:42) 
[Clang 9.0.0 (clang-900.0.37)] :: Anaconda custom (64-bit) on darwin

(я получаю точно так же, если вместо этого набираю python3)

Теперь, когда я смотрю на версию python из Atom, я получаю версию 3.6.5 с

>>> import sys
>>> print(sys.version
3.6.5 | packaged by conda-forge | (default, Apr  6 2018, 13:44:09) 
[GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)]

как получится?как я могу заставить Atom получить ту же версию, что и версия, которую получает Терминал?

Неудачные попытки

Просмотр PATH с помощью команды import sys а затем print(sys.path) вот что я получаю:

от атома:

['', '/anaconda3/lib/python36.zip', '/anaconda3/lib/python3.6', 
'/anaconda3/lib/python3.6/lib-dynload', '/anaconda3/lib/python3.6/site-packages',
'/anaconda3/lib/python3.6/site-packages/aeosa', '/anaconda3/lib/python3.6/site-packages/cycler-0.10.0-py3.6.egg', 
'/anaconda3/lib/python3.6/site-packages/IPython/extensions', '/Users/mymac/.ipython']

от терминала:

['', '/Users/mymac/anaconda3/lib/python37.zip', 
'/Users/mymac/anaconda3/lib/python3.7', 
'/Users/mymac/anaconda3/lib/python3.7/lib-dynload', 
'/Users/mymac/anaconda3/lib/python3.7/site-packages', 
'/Users/mymac/anaconda3/lib/python3.7/site-packages/aeosa']

Кажется, Atom используетверсия Python pyenv имеет следующую команду и вывод:

$ pyenv versions
* system (set by /Users/mymac/.pyenv/version)
  3.6.5

в соответствии с github-страницей pyenv .Я ввел pyenv virtualenv 3.7.1.Затем при вводе $ pyenv versions по крайней мере версия 3.7.1 была в списке:

* system (set by /Users/mymac/.pyenv/version)
  3.6.5
  3.7.1

Но это не решило проблему с Atom

Я тогда посетил conda page об управлении средой и запустил следующие команды:

$ conda create --name myenv

Он запустился без проблем, но проблема сохраняется

Затем я попытался запустить более конкретно $ conda create -n myenv python=3.7.1но получил: CondaValueError: prefix already exists: /Users/mymac/anaconda3/envs/myenv

Как указано @jmh Тогда я попытался: $ source activate 3.7.1 и получил следующее приглашение: (3.7.1) user:~ user$

Я мог успешно выбрать правильный правильный virtualenv.Но после открытия Atom проблема не исчезла

Ответы [ 3 ]

0 голосов
/ 18 декабря 2018

Если у вас есть несколько версий Python, вы должны использовать виртуальные среды.Версия python, используемая из терминала, будет зависеть от того, какую виртуальную среду вы активировали.Атом будет использовать то же самое тогда.Активируйте ту версию Python, которую вы хотите, и затем запустите Atom.

Если вы используете Anaconda, тогда установите среды conda.Это очень просто, если вы используете Anaconda.Если вы не используете его, необходимо выполнить несколько дополнительных шагов.

Интернет полон указаний по созданию виртуальных сред.

Я создал среду с именем py27 для python 2.7.Когда я активирую это окружение, оно появляется на линии курсора следующим образом:

enter image description here.

Если вы не видите этого, ваша среда не была активирована.Для активации на Mac наберите source activate py27.Я не думаю, что вам нужен источник слова на ПК, но я не могу это проверить.

0 голосов
/ 18 декабря 2018

Хорошо, мне действительно пришлось изменить Path в файле .json ядра jupyter.Сначала я проверил список ядра jupyter:

$ jupyter kernelspec list
julia-0.6    /Users/mymac/Library/Jupyter/kernels/julia-0.6
julia-1.0    /Users/mymac/Library/Jupyter/kernels/julia-1.0
python3      /Users/mymac/Library/Jupyter/kernels/python3

Затем я cd по указанному выше пути python и нашел файл kernel.json внутри и открыл его:

{
 "argv": [
  "/path/to/python",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "display_name": "Python 3",
 "language": "python"
}

В этом файле я затем изменил строку /path/to/python на путь python, который я получил, набрав в терминале следующее:

$ which python
/Users/mymac/anaconda3/bin/python

Перезапустил Atom, и это наконец-то сработало!

подсказки github-страницы jupyter также очень помогли!

0 голосов
/ 18 декабря 2018

На вашем компьютере должно быть несколько (разных версий) интерпретаторов Python.Откройте командную палитру в Atom и выберите «Python: Select Interpreter».Выберите версию Python, которую вы хотите использовать.

...