pyenv версия python2 не работает - PullRequest
0 голосов
/ 08 мая 2018

Я вижу это в моем терминале:

gyp ERR! stack pyenv: python2: command not found
gyp ERR! stack 
gyp ERR! stack The `python2' command exists in these Python versions:
gyp ERR! stack   2.7.5
gyp ERR! stack   2.7.8

Я очень запутался, что это значит. Как я могу настроить pyenv, чтобы это работало?

Я хочу сделать это:

python => version 2.7
python2 => version 2.7
python3 => version 3.6.4

python3 настроен нормально, но python / python2 нет, и я не могу понять, почему.

Ответы [ 3 ]

0 голосов
/ 15 августа 2018

Вы можете установить локально (для текущей папки) версию по умолчанию для команды python на любую нужную версию.

В вашем случае вы можете запустить:

pyenv local 2.7.8

Это создаст скрытый файл с именем .python-version в вашей текущей папке. При этом pyenv собирается использовать этот файл для настройки версии, связанной с командой python. Короче говоря, из этой папки и любой другой под ней python выполнит python 2.7.8.

0 голосов
/ 26 января 2019

В macOS Mojave 10.14.3 я обнаружил похожую ошибку, которая была устранена путем запуска

$ pyenv shell 3.7.1 2.7.15

Я столкнулся с этой проблемой, пытаясь запустить $ npx create-react-app my_app --use-npm в системе, где пряжа установлена ​​и используется по умолчанию. Обратите внимание, что без --use-npm, когда менеджер пакетов использовал пряжу, а ошибки не было.

Вот ошибка, вызванная --use-npm, которая была устранена с помощью $ pyenv shell 3.7.1 2.7.15

> fsevents@1.2.4 install /Users/richardlogwood/dev/react/my_app/node_modules/fsevents
> node install

gyp ERR! configure error
gyp ERR! stack Error: Command failed: /Users/richardlogwood/.pyenv/shims/python2 -c import sys; print "%s.%s.%s" % sys.version_info[:3];
gyp ERR! stack pyenv: python2: command not found
gyp ERR! stack
gyp ERR! stack The `python2' command exists in these Python versions:
gyp ERR! stack   2.7.15
gyp ERR! stack
gyp ERR! stack
gyp ERR! stack     at ChildProcess.exithandler (child_process.js:294:12)
gyp ERR! stack     at ChildProcess.emit (events.js:188:13)
gyp ERR! stack     at maybeClose (internal/child_process.js:978:16)
gyp ERR! stack     at Socket.stream.socket.on (internal/child_process.js:395:11)
gyp ERR! stack     at Socket.emit (events.js:188:13)
gyp ERR! stack     at Pipe._handle.close (net.js:610:12)
gyp ERR! System Darwin 18.2.0
. . .

Подробнее о решении:

$ pyenv versions
  system
  2.7.15
* 3.7.1 (set by /Users/richardlogwood/.pyenv/version)

$ pyenv shell 3.7.1 2.7.15

$ pyenv versions
  system
* 2.7.15 (set by PYENV_VERSION environment variable)
* 3.7.1 (set by PYENV_VERSION environment variable)

$ pyenv shell
3.7.1:2.7.15

# now create-react-app succeeds!
npx create-react-app my_app --use-npm

Эта проблема с GitHub привела меня к решению этой проблемы https://github.com/electron-userland/electron-builder/issues/638

0 голосов
/ 08 мая 2018

Эта ошибка означает, что вы пытались вызвать python2, но он не может найти команду python2. Также полезно сообщить, что команда существует в средах 2.7.5 и 2.7.8, которые в настоящее время не активны.

Прежде чем вы сможете их использовать, вам необходимо сначала активировать среды, например ::100100

pyenv shell 2.7.8 3.6.4

Я полагаю, что, поскольку 2.7.8 указан первым, он будет использоваться командой "python".

...