首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PYTHONPATH干扰virtualenv

PYTHONPATH干扰virtualenv
EN

Stack Overflow用户
提问于 2014-12-17 23:38:52
回答 1查看 353关注 0票数 1

我正在使用MacOSX10.10.1。我通常使用brew或pip来安装所有的东西。我注意到,我的virtualenv总是抢占所有本地安装的Python包。我通过在我的$PYTHONPATH配置文件中删除我的~/.zshrc变量来修正这个问题。这解决了virtualenv抢占我所有Python包的问题,但是IPython却找不到位于/usr/local/lib/python2.7/site-packages中的东西。我最终找到了一种解决IPython问题的方法,方法是将/usr/local/bin/ipython中的hashbang行更改为#!/usr/local/bin/ipython,正如this SO post中所建议的那样。据我所知,现在一切都很好。

我的问题是:

  1. 最好将所有东西安装到/Library/Python/2.7/site-packages中吗?还是把一半的东西放在/usr/local/lib/python2.7/site-packages里比较好呢?把包裹分拆成这样似乎是精神分裂症。
  2. 我是否做了正确的事情:( a)删除我个人定义的$PYTHONPATH变量;( b)在/usr/local/bin/ipython文件中将hashbang从#!/usr/bin/ipython更改为#!/usr/local/bin/ipython?我的$PYTHONPATH变量在~/.zshrc配置文件中被设置为export PYTHONPATH="/usr/local/lib/python2.7/site-packages/":${PATH}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-17 23:48:01

  1. 最好是尽可能多地在虚拟环境中安装软件包(用于您正在处理的应用程序或项目)。这使得依赖项保持独立,因此,您应该只在适当的时候全局安装(但通常不是因为依赖关系是特定于项目的)。 但要回答您的问题:确实有可能有些依赖关系是系统范围的,而另一些依赖项则在虚拟环境中。让整个系统的Python、用户Python和virtualenv一起工作有点奇怪,但这是可以做到的。尽量避免将依赖关系扩展到任何地方,因为这很难维护。结合brew / pip也会带来灾难,因为他们并不总是意识到彼此的存在,而且确实会产生干扰。我使用MacPorts (或Homebrew)进行非Python依赖,对所有packages使用Python解释器安装和pip。

  1. 这听起来不对:您不应该编辑文件的hashbang (当然,除非,作为与bug一起发布的包的解决方案)。更新PYTHONPATH变量是正常的,因为许多人的shell配置文件中都有这样的修改。您对该文件的编辑是不可持续的,因为升级或其他更改可能再次破坏该文件。如果您使用的是正确打包的版本,您就不必指向另一个Python解释器。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27536830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档