我在OSX上,通过virtualfish
设置了一个名为ds-mapreduce-env
的python virtualenv
。在我的项目目录中激活了venv
,看起来选择了正确的pip
和{
~/d/ds-mapreduce (venv) master ➜ which pip
/Users/cody/.virtualenvs/ds-mapreduce-env/bin/pip
~/d/ds-mapreduce (venv) master ➜ which python
/Users/cody/.virtualenvs/ds-mapreduce-env/bin/python
但是当我运行pip install
时,它并没有按照预期安装到虚拟环境中。但是,当我使用sudo
时,它确实是这样。在
我猜这是某种权限问题,但我搞不懂。我用brew install python
安装了python
,用{
我的解决方案
我的问题是我的PYTHONPATH
。我在我的/usr/local/lib/python2.7/site-packages
前面加了PYTHONPATH
。删除它解决了这个问题!在
第一步是卸载全局安装的软件包:
通过检查
/usr/local/lib/python2.7/site-packages/
,确认其已完全移除。如果没有,请手动清除在那里发现的任何相关碎屑。在下一步是更好地将虚拟环境
^{pr2}$site-packages
与全局site-packages
隔离开来。将以下内容添加到~/.config/fish/config.fish
:如果您打开一个新的终端会话,现在如果您在没有激活的虚拟环境的情况下运行
pip install geonamescache
应该会得到一个错误,这正是我们想要的。通过vf new ds-mapreduce-env
创建并激活一个新的虚拟环境,并再次尝试相同的pip install geonamescache
调用,包应该安装到虚拟环境中。在由于这将阻止您在全局
site-packages
中安装任何内容,您可能需要设置一个别名,允许您覆盖此隔离并执行全局pip
操作。添加以下函数作为~/.config/fish/functions/gpip.fish
:有了它,您可以(例如)通过以下方式升级您的全球软件包:
上面的大部分已经通过Tacklebox+Tackle(查找
pip
插件)来解决,这些项目旨在轻松地为fish
环境添加增强功能。在相关问题 更多 >
编程相关推荐