众所周知,Mac OS预装了自己的python。
建议似乎是单独留下并使用自制程序在系统中安装一个新的python。
我的问题是在使用自制软件安装python(和pip)后,pip正在将软件包安装到Mac OS站点软件包而不是我自己的软件包中。我已经确认我正在运行"自制软件" PIP:
$ which pip
/usr/local/bin/pip
但是当我点击安装时,我可以将其安装在:
/lib/python2.7/site-packages
Pip应该安装在/usr/local/lib/python2.7/site-packages
,除非我不理解某些内容。
令人惊讶的是,使用-V
进行检查会产生令人惊讶的结果:
pip -V
pip 7.1.0 from /usr/local/lib/python2.7/site-packages (python 2.7)
在运行pip list
后立即运行pip install
并未显示应该由其安装的软件包,而是显示错误的站点软件包。
除此之外,我的$ PYTHONPATH无法识别/lib/python2.7/site-packages
上安装的软件包,因此我无法使用它们。
为了增加更多的混淆,我决定使用virtualenv,但我很惊讶甚至使用pip,virtualenv active保持安装到/lib/python2.7/site-packages
而不是virtualenv site-packages。
所以,不知怎的,我最终得到了一个自制的点子,它安装了自制网站包之外的包和一个不能使用pip安装的软件包的python解释器。
您如何推荐我找到根本原因并获得流畅的Python体验? :)
答案 0 :(得分:0)
我认为在你激活virtualenv之后你的python路径应该指向那个环境的站点 - 包位置 - 如果没有它可能没有被激活。只有在您激活它之后,才会运行pip,以便将其安装在虚拟环境的站点包中。如果它没有被激活,它将进入它已经知道的任何其他网站包:
virtualenv venv
source /venv/bin/activate
如果您在步骤2之前执行第3步,则实际上并未使用您创建的虚拟环境,因此所有投注都已关闭 - 这可能是pip仍然安装到旧位置的原因。
现在,我的总体建议是进一步使用pyenv
将特定版本的python安装到/Users/username/.pyenv folder
中,并放弃默认的OSX和自制软件包。它很简单,你可以通过简单的命令发布来轻松控制python的确切版本来改变版本。
那么在python2中使用virtualenv或pyvenv
如果在python3中(不要与pyenv混淆)用自己的本地站点包构建虚拟环境来存储pip模块。当您激活virtualenv时,$ PYTHONPATH将切换到特定位置。
流程将是:
完全控制你的环境!
答案 1 :(得分:0)
例如,您可以尝试使用pip install --upgrade pip
命令更新点子,该命令可能会也可能不会重定向您的点子路径。
二,我真的应该从这一开始,就是在.bash_profile
或.zshrc
中设置首选的pip可执行文件路径(如果您正在使用的话)。您的操作方式(在Mac上)是通过按住Shift+Command+Period
来显示隐藏的文件,转到“用户”文件夹,然后使用文本编辑器打开.bash_profile/.zshrc
。然后,将路径/到/ bin添加到所需的点。类似于导出PATH="User/Username/anaconda3/bin:$PATH"
或/usr/local/bin
或path/to/venv/bin
。最后编写的任何代码都将覆盖前一个代码。
三,如果您不想更改默认的pip,而是想针对特定情况使用其他版本,则只需包含pip可执行文件的完整路径即可,例如/usr/local/bin/pip list
或Users/Username/Desktop/venv/bin/pip install module
。 / p>