为什么我的 Cygwin 安装程序告诉我 Python3.6 未安装?
Why does my Cygwin setup tell me Python3.6 not installed?
Python 3.6 已安装(使用 Cygwin 安装程序 .exe 文件、更新等)。可执行文件位于 /bin/
... 还是位于 /usr/bin/
? Cygwin ls
命令显示 /usr/bin
存在...但在 Windows 上该目录不存在。此外,两个目录的内容是相同的,包括如果我更改文件名......但我还没有找到符号链接(在 /usr
或 /
中)来解释这个!
我正在努力安装 virtualenvwrapper(这是阅读本书 TDD With Python 所需的准备工作的一部分)。
我刚刚(最终)克服了第一个障碍,意识到我必须使用 pip3 而不是 pip 安装 virtualenvwrapper! ...我觉得自己陷入了深渊。
所以我做到了:
pip3 install virtualenvwrapper
echo "source virtualenvwrapper.sh" >> ~/.bashrc
source ~/.bashrc
...然后我做了
mkvirtualenv --python3=`py -3.6 -c"import sys; print(sys.executable)"` superlists
(NB "python3" 是符号链接的正确名称,它指向 /bin/
中的 Python3 可执行文件;有一个 "python" 符号链接,但它指向Python2.7)
我得到了:
Requested Python version (3.6) not installed
Using base prefix '/usr'
New python executable in
/home/Chris/.virtualenvs/superlists/bin/python3
Also creating
executable in /home/Chris/.virtualenvs/superlists/bin/python
Installing setuptools, pip, wheel...done.
virtualenvwrapper.user_scripts creating
/home/Chris/.virtualenvs/superlists/bin/predeactivate
virtualenvwrapper.user_scripts creating
/home/Chris/.virtualenvs/superlists/bin/postdeactivate
virtualenvwrapper.user_scripts creating
/home/Chris/.virtualenvs/superlists/bin/preactivate
virtualenvwrapper.user_scripts creating
/home/Chris/.virtualenvs/superlists/bin/postactivate
virtualenvwrapper.user_scripts creating
/home/Chris/.virtualenvs/superlists/bin/get_env_details
(superlists)
有人知道这是怎么回事吗?如何让系统识别出 Python3.6 已实际安装?
待会儿 还是……我是不是脑残了?也许使用此模块创建虚拟环境总是涉及安装新的 Python 可执行文件?
稍后我仍然不清楚这个......但这并没有阻止我使用virtualenv
和virtualenvwrapper
并且通常继续读这本书。尽管抱怨 Python 不存在,但设置似乎(据我所知!)使用目录 .virtualenv/ 目录下的符号链接到 /bin/ 中的 Python 符号链接之一...
关于第一个问题
/usr/bin and /usr/lib are by default also automatic mount points
generated by the Cygwin DLL similar to the way the root directory is
evaluated. /usr/bin points to the directory the Cygwin DLL is
installed in, /usr/lib is supposed to point to the /lib directory.
https://cygwin.com/cygwin-ug-net/using.html#mount-table
第二种,检查是否安装了phyton3
$ cygcheck -c python3
并且如 phd
所述,py 命令不是 cygwin 命令,所以您可能正在混合一些东西。
Python 3.6 已安装(使用 Cygwin 安装程序 .exe 文件、更新等)。可执行文件位于 /bin/
... 还是位于 /usr/bin/
? Cygwin ls
命令显示 /usr/bin
存在...但在 Windows 上该目录不存在。此外,两个目录的内容是相同的,包括如果我更改文件名......但我还没有找到符号链接(在 /usr
或 /
中)来解释这个!
我正在努力安装 virtualenvwrapper(这是阅读本书 TDD With Python 所需的准备工作的一部分)。
我刚刚(最终)克服了第一个障碍,意识到我必须使用 pip3 而不是 pip 安装 virtualenvwrapper! ...我觉得自己陷入了深渊。
所以我做到了:
pip3 install virtualenvwrapper
echo "source virtualenvwrapper.sh" >> ~/.bashrc
source ~/.bashrc
...然后我做了
mkvirtualenv --python3=`py -3.6 -c"import sys; print(sys.executable)"` superlists
(NB "python3" 是符号链接的正确名称,它指向 /bin/
中的 Python3 可执行文件;有一个 "python" 符号链接,但它指向Python2.7)
我得到了:
Requested Python version (3.6) not installed
Using base prefix '/usr'
New python executable in /home/Chris/.virtualenvs/superlists/bin/python3
Also creating executable in /home/Chris/.virtualenvs/superlists/bin/python
Installing setuptools, pip, wheel...done.
virtualenvwrapper.user_scripts creating /home/Chris/.virtualenvs/superlists/bin/predeactivate
virtualenvwrapper.user_scripts creating /home/Chris/.virtualenvs/superlists/bin/postdeactivate
virtualenvwrapper.user_scripts creating /home/Chris/.virtualenvs/superlists/bin/preactivate
virtualenvwrapper.user_scripts creating /home/Chris/.virtualenvs/superlists/bin/postactivate
virtualenvwrapper.user_scripts creating /home/Chris/.virtualenvs/superlists/bin/get_env_details
(superlists)
有人知道这是怎么回事吗?如何让系统识别出 Python3.6 已实际安装?
待会儿 还是……我是不是脑残了?也许使用此模块创建虚拟环境总是涉及安装新的 Python 可执行文件?
稍后我仍然不清楚这个......但这并没有阻止我使用virtualenv
和virtualenvwrapper
并且通常继续读这本书。尽管抱怨 Python 不存在,但设置似乎(据我所知!)使用目录 .virtualenv/ 目录下的符号链接到 /bin/ 中的 Python 符号链接之一...
关于第一个问题
/usr/bin and /usr/lib are by default also automatic mount points generated by the Cygwin DLL similar to the way the root directory is evaluated. /usr/bin points to the directory the Cygwin DLL is installed in, /usr/lib is supposed to point to the /lib directory.
https://cygwin.com/cygwin-ug-net/using.html#mount-table
第二种,检查是否安装了phyton3
$ cygcheck -c python3
并且如 phd
所述,py 命令不是 cygwin 命令,所以您可能正在混合一些东西。