Mac OS X中的virtualenv问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mac OS X中的virtualenv问题相关的知识,希望对你有一定的参考价值。

我已经通过virtualenv安装了pip并在创建新环境后出现此错误:

selenium:~ auser$ virtualenv new  
New python executable in new/bin/python  
ERROR: The executable new/bin/python is not functioning  
ERROR: It thinks sys.prefix is u'/System/Library/Frameworks/Python.framework/    Versions/2.6' (should be '/Users/user/new')  
ERROR: virtualenv is not compatible with this system or executable  

在我的环境中:

PYTHONPATH=/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages  
PATH=/System/Library/Frameworks/Python.framework/Versions/2.6/bin:/Library/Frameworks/Python.framework/Versions/2.6/bin:/Library/Frameworks/Python.framework/Versions/2.6/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin  

我该怎么修呢?

谢谢。

答案

如果你继续遇到virtualenv的问题,你可以试试pythonbrew。它是同一问题的替代解决方案。它更像Ruby的rvm:它在$HOME/.pythonbrew下构建并创建一个完整的Python实例,然后设置一些bash函数,允许您在版本之间轻松切换。在virtualenv影响Python的系统版本的地方,使用符号链接作为其解决方案的一部分,pythonbrew构建完全自包含的Python安装。

我使用virtualenv多年。这是一个不错的解决方案,但我最近转向了pythonbrew。拥有完全独立的Python实例意味着安装一个新实例需要一段时间(因为pythonbrew实际上是从头开始编译Python),但每个安装的自包含特性都吸引我。磁盘很便宜。

另一答案

virtualenv --system-site-packages -p python3.6 mysite上,在升级到Lion之后,再次降级(哎呀 - 避免!),几个月前我通过了OSX 10.6.8 leopard方法,完全不知道python。完全删除Wolf Paulus并用python 2.7“替换”它。我的FTP程序停止工作(Fetch),谁知道还有什么依赖于Python 2.7。所以在那时我从python.org下载了最新版本的3.something,它的安装程序让我运行起来 - 直到我试图使用2.7

这次似乎对我有用的是用以下代码完全删除Python 2.7:

virtualenv

删除此代码的所有链接:

sudo rm -R /System/Library/Frameworks/Python.framework/Versions/2.7

我曾尝试使用sudo rm /usr/bin/pydoc sudo rm /usr/bin/python sudo rm /usr/bin/pythonw sudo rm /usr/bin/python-config 安装python,但显然它不会工作,除非安装了所有的XTools,我一直在避免,因为与homebrew兼容的XTools版本是古老的4GB,而且我所需要的只是GCC,编译器,你可以得到10.6

所以我刚安装了here的最新下载。

然后不得不重新安装easy_install,pip,virtualenv。

绝对不知道什么时候需要一台新的笔记本电脑,但要购买更少的硬件(奴隶劳动,不道德的采矿等)还有很多东西要说。

另一答案

我做了以下步骤来使virtualenv工作:

更新virtualenv如下:

python.org

初始化python3 virtualenv:

==> sudo pip install --upgrade virtualenv
另一答案

打开终端并输入==> virtualenv -p python3 venv

然后键入/Library/Frameworks/Python.framework/Versions/如果您使用的是Python2(或任何其他)。

编辑〜/ .bash_profile并添加以下行:ls /Library/Frameworks/Python.framework/Versions/2.7/bin/

export PATH=$PATH:/Library/Frameworks/Python.framework/Versions/2.7/bin/

在我的例子中,〜/ .bash_profile的内容如下:

cat ~/.bash_profile

现在virtualenv命令应该工作。

另一答案

我有同样的问题,我可以确认问题出在过时的export PATH=$PATH:/Library/Frameworks/Python.framework/Versions/2.7/bin/文件中。

没有必要进行整个安装 - 升级。

用最新版本替换virtualenv.py文件已经足够了。

另一答案

我也有这个问题,我尝试了以下适用于我的方法:

virtualenv.py

conda install virtualenv (这里virtualenv --system-site-packages /anaconda/envs/tensorflow保留用户制作的所有虚拟环境)

envs

希望它有用。

另一答案

以防有人仍在寻找答案。

我今天遇到了同样的问题并且意识到我已经安装了Anaconda,我不应该使用pip install virtualenv来安装虚拟环境,因为这会在稍后尝试启动时给出错误消息。相反,我尝试conda install virtualenv然后进入virtualenv env_mysite,问题解决了。

另一答案

如果将来有人遇到这个问题 - 这是由你的默认Python发行版为conda引起的。 Conda拥有它自己的虚拟环境set up process但是如果你有python的conda分布并且仍然希望使用virtualenv这里的方法如下:

  1. 在你的机器上找到另一个python发行版:ls -ls /usr/bin/python*
  2. 注意可用的python版本不是conda并运行下面的代码(注意python 3及以上版本,你必须首先升级virtualenv):qazxsw poi
另一答案

就像@RyanWilcox提到的那样,你可能会无意中将virtualenv -p python2.7(or your python version) flaskapp指向错误的Python安装。 Virtualenv附带一个virtualenv标志,让您指定使用哪个解释器。

就我而言,

-p

和你一样犯了同样的错误

virtualenv test_env

工作得很好。

如果你调用virtualenv -p python test_env virtualenv -h标志的文档将告诉你它认为它应该使用哪个python;如果它看起来很难看,试试通过-p。作为参考,我正在使用virtualenv 1.11.6。

另一答案

我自己遇到过这个问题。我在自述文件中写下了说明,我在下面粘贴了....

我发现有两件事可行:

  1. 确保你正在运行最新的virtualenv(本文中的1.5.1)
  2. 如果您使用非系统Python作为标准Python(要检查的python)强制使用系统提供的。 而不是-p python使用virtualenv thing(或任何/usr/bin/python2.6 PATH/TO/VIRTUALENV thing返回给你 - 这是它在我遇到这个问题时为我做的)
另一答案

我有同样的问题,正如我现在看到的那样,它是由凌乱的Python安装造成的。自从我购买了一台新笔记本电脑以来,我安装了OS X已经超过一年了,我已经使用不同来源(官方二进制文件,自制软件,官方二进制文件+ which python描述的手工调整)安装并重新安装了Python几次。不要问我为什么这样做,我只是一个悲惨的新手,相信重新安装后一切都会自行解决。

所以,我在这里和那里安装了许多不同的Pythons以及许多不一致地指向它们的硬链接。最终我厌倦了他们所有人 重新安装OS X. 我使用here实用程序发现的所有Pythons都仔细清理了系统。此外,我已取消链接所有指向任何地方的Python的链接。然后我用自制软件安装了一个新的Python,安装了virtualenv,现在一切都像魅力一样。

所以,我的食谱是:

find

然后分析这个文件,删除并取消与你需要的Python版本相关的所有内容,重新安装它(我用自制软件做,也许正式安装也可以)并享受。确保你从sudo find / -iname "python*" > python.log/usr/bin取消与python相关的所有内容,并删除/usr/local/binFrameworks/Python.framework/Versions/<Your.Version>/Library的所有实例。

这可能是一个肮脏的黑客,但它对我有用。我不想保留除/System/Librarypip之外的任何系统范围的Python库,并为我的所有项目创建虚拟环境,所以我不关心删除重要的库。如果你不想删除所有内容,仍然要尝试了解你的蟒蛇是否是什么,链接指向它们以及从何处指向它们。然后想想可能导致问题并解决问题的方法。

另一答案

我遇到了这个“无法正常运行”错误的变体。我试图在包含路径“... / Programming / Developing ...”的文件夹中创建一个环境,这实际上是“/ Users / eric / Documents / Programming:Developing /”

并得到此错误:

virtualenv

我在不同的文件夹中尝试了同样的工作,它工作正常,没有错误,env / bin有我期望的(激活等)。

另一答案

以上解决方案对我来说失败了,但以下工作:

ImportError: No module named site
ERROR: The executable env/bin/python2.7 is not functioning
ERROR: It thinks sys.prefix is u'/Users/eric/Documents/Programming:Developing/heroku' (should be u'/Users/eric/Documents/Programming:Developing/heroku/env')
ERROR: virtualenv is not compatible with this system or executable

这是hacky,但是,核心问题确实只是pip。

另一答案

我遇到了同样的问题,我发现当你没有正确指定python可执行文件名时会发生这种情况。所以对于python 2x,例如:

python3 -m venv --without-pip <ENVIRONMENT_NAME> . <ENVIRONMENT_NAME>/bin/activate curl https://bootstrap.pypa.io/get-pip.py | python deactivate

但对于python 3.6,您需要指定可执行文件名,如python3.6

virtualenv --system-site-packages -p python mysite

以上是关于Mac OS X中的virtualenv问题的主要内容,如果未能解决你的问题,请参考以下文章

Mac OS X中virtualenv里python shell无法使用光标键问题的解决

Mac OS X中virtualenv里python shell无法使用光标键问题的解决

Mac OS 基于 VirtualEnv 的安装 tensorflow

在 Mac OS X 装不上 TensorFlow?看了这篇就会装

开发 | 在 Mac OS X 装不上 TensorFlow?看了这篇就会装

Mac OS 中使用virtualenv解决python冲突