Zeb*_*ebs 7 python macos homebrew pip python-2.7
众所周知,Mac OS预装了自己的python.
建议似乎是单独留下并使用自制软件将新的python安装到系统中.
我的问题是在使用自制软件安装python(和pip)之后,pip正在将软件包安装到Mac OS站点包而不是我自己的软件包中.我已经确认我正在运行"自制"点子:
$ which pip
/usr/local/bin/pip
Run Code Online (Sandbox Code Playgroud)
但是,当我pip安装的东西,我可以安装在以下位置:
/lib/python2.7/site-packages
Run Code Online (Sandbox Code Playgroud)
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)
Run Code Online (Sandbox Code Playgroud)
pip list刚刚运行后运行pip install并没有显示那些据说刚刚安装的软件包,而是出现了错误的site-packages.
除此之外/lib/python2.7/site-packages,我的$ PYTHONPATH无法识别安装在其上的软件包,因此我无法使用它们.
为了增加更多的混淆,我决定使用virtualenv,但我很惊讶甚至使用与virtualenv活动的pip保持安装/lib/python2.7/site-packages而不是virtualenv站点包.
所以,不知怎的,我最终得到了一个自制的点子,它安装了自制网站包之外的包和一个不能使用pip安装的包的python解释器.
您如何建议我找到根本原因并获得流畅的Python体验?:)
我认为激活 virtualenv 后,你的 python 路径应该指向该环境站点包位置——如果不是,它可能没有激活。只有激活它后,您才会运行 pip,以便它安装在该虚拟环境的站点包中。如果它没有被激活,它将进入它已经知道的任何其他站点包中:
virtualenv venvsource /venv/bin/activate如果您在步骤 2 之前执行步骤 3,那么您实际上并没有使用您创建的虚拟环境,那么所有的赌注都将被取消——这可能就是 pip 仍然安装到旧位置的原因。
现在,我的总体建议是更进一步,使用pyenv将特定版本的 python 安装到您的系统中/Users/username/.pyenv folder,并放弃默认的 OSX 和 homebrew 软件包。它很简单,您可以通过简单地发出命令来更改版本来轻松控制要使用的 python 的确切版本。
然后在 python2 中使用 virtualenv 或pyvenv在 python3 中使用 virtualenv (不要与 pyenv 混淆)使用自己的本地站点包构建虚拟环境来存储 pip 模块。当您激活 virtualenv 时,您的 $PYTHONPATH 将切换到特定位置。
那么流程将是:
完全控制您的环境!
| 归档时间: |
|
| 查看次数: |
2320 次 |
| 最近记录: |