不知怎么的,我在mac上搞砸了Python2.7的安装,所以我试图用“brew安装python”重新安装。现在,当我尝试创建一个新的virtualenv时,它会抛出一个错误:找不到/bin/easy\u install。easy_install实际上位于/usr/local/bin/easy\u install中。如果我把它符号链接到/bin,virtualenv会失败,并出现/bin/pip等等-它要查找的每个文件实际上都在/usr/local/bin not/bin中
如何使virtualenv永远处于正确的位置:/usr/local/bin?在
$ virtualenv env
New python executable in /Users/myusername/code/lambda/env/bin/python2.7
Also creating executable in /Users/myusername/code/lambda/env/bin/python
Installing setuptools, pip, wheel...
Complete output from command /Users/myusername/c...da/env/bin/python2.7 -c "import sys, pip; sys...d\"] + sys.argv[1:]))" setuptools pip wheel:
Ignoring indexes: https://pypi.python.org/simple
Collecting setuptools
Collecting pip
Collecting wheel
Installing collected packages: setuptools, pip, wheel
Exception:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/virtualenv_support/pip-7.1.2-py2.py3-none-any.whl/pip/basecommand.py", line 211, in main
status = self.run(options, args)
File "/usr/local/lib/python2.7/site-packages/virtualenv_support/pip-7.1.2-py2.py3-none-any.whl/pip/commands/install.py", line 311, in run
root=options.root_path,
File "/usr/local/lib/python2.7/site-packages/virtualenv_support/pip-7.1.2-py2.py3-none-any.whl/pip/req/req_set.py", line 646, in install
**kwargs
File "/usr/local/lib/python2.7/site-packages/virtualenv_support/pip-7.1.2-py2.py3-none-any.whl/pip/req/req_install.py", line 803, in install
self.move_wheel_files(self.source_dir, root=root)
File "/usr/local/lib/python2.7/site-packages/virtualenv_support/pip-7.1.2-py2.py3-none-any.whl/pip/req/req_install.py", line 998, in move_wheel_files
isolated=self.isolated,
File "/usr/local/lib/python2.7/site-packages/virtualenv_support/pip-7.1.2-py2.py3-none-any.whl/pip/wheel.py", line 465, in move_wheel_files
generated.extend(maker.make(spec))
File "/usr/local/lib/python2.7/site-packages/virtualenv_support/pip-7.1.2-py2.py3-none-any.whl/pip/_vendor/distlib/scripts.py", line 353, in make
self._make_script(entry, filenames, options=options)
File "/usr/local/lib/python2.7/site-packages/virtualenv_support/pip-7.1.2-py2.py3-none-any.whl/pip/_vendor/distlib/scripts.py", line 257, in _make_script
self._write_script(scriptnames, shebang, script, filenames, ext)
File "/usr/local/lib/python2.7/site-packages/virtualenv_support/pip-7.1.2-py2.py3-none-any.whl/pip/_vendor/distlib/scripts.py", line 231, in _write_script
self._fileop.write_binary_file(outname, script_bytes)
File "/usr/local/lib/python2.7/site-packages/virtualenv_support/pip-7.1.2-py2.py3-none-any.whl/pip/_vendor/distlib/util.py", line 388, in write_binary_file
with open(path, 'wb') as f:
IOError: [Errno 13] Permission denied: '/bin/easy_install'
----------------------------------------
...Installing setuptools, pip, wheel...done.
Traceback (most recent call last):
File "/usr/local/bin/virtualenv", line 9, in <module>
load_entry_point('virtualenv==13.2.0.dev0', 'console_scripts', 'virtualenv')()
File "/usr/local/lib/python2.7/site-packages/virtualenv.py", line 699, in main
symlink=options.symlink)
File "/usr/local/lib/python2.7/site-packages/virtualenv.py", line 872, in create_environment
install_wheel(to_install, py_executable, search_dirs)
File "/usr/local/lib/python2.7/site-packages/virtualenv.py", line 837, in install_wheel
'PIP_USER': '0'
File "/usr/local/lib/python2.7/site-packages/virtualenv.py", line 777, in call_subprocess
% (cmd_desc, proc.returncode))
OSError: Command /Users/myusername/c...da/env/bin/python2.7 -c "import sys, pip; sys...d\"] + sys.argv[1:]))" setuptools pip wheel failed with error code 2
在输出的一半左右,您可以看到virtualenv正在寻找/bin/easy\u安装
^{pr2}$但它应该在/usr/local/bin中查找,因为这是我现在仅有的一个简单的_安装,而且它可以工作:
$ which easy_install
/usr/local/bin/easy_install
$ easy_install
install_dir /usr/local/lib/python2.7/site-packages/
error: No urls, filenames, or requirements specified (see --help)
我试过pip卸载virtualenv然后pip安装virtualenv,但没用-同样的问题。在
有人知道怎么解决这个问题吗?在
谢谢!在
=================
编辑:解决了! 尝试使用/usr/local/bin/virtualenv-2.7,它的工作与预期一样。我把/usr/local/bin/virtualenv移到了/usr/local/bin/virtualenv-2.7,然后将其符号链接到/usr/local/bin/virtualenv——现在看来一切都很好。在
解决了!尝试使用/usr/local/bin/virtualenv-2.7,它的工作与预期一样。我把/usr/local/bin/virtualenv移到了/usr/local/bin/virtualenv-2.7并将其符号链接到/usr/local/bin/virtualenv-现在看来一切都很好。在
我编译了我自己的python3,然后安装了virtualenvwrapper。但是在我从编译自己的Python改为使用^{} PPA 之后,我遇到了上面问题中描述的问题。在
似乎virtualenv脚本的
#!
部分有问题。在我得到的错误如下:
我的系统Python设置有以下符号链接和Python位置:
^{pr2}$在/home/nb/.local/bin/¹中:
我想知道这个神秘的、完全不存在的/usr/local/bin/python3.6在代码中的什么位置。在
所以我安装了一个全文搜索工具,并在~/.local文件夹中查找它。在
看起来像Python的静态引用有两处。在
我现在有两个选择:
我可以编辑其中的/usr/local/bin/python3.6文本以引用/usr/bin/python3.6
我可以从
/usr/local/bin/python3.6
->;/usr/bin/python3.6
我对
bin/virtualenv-clone
文件使用了选项1:但我也做了选择2,以防这个问题存在于我的系统的其他地方。在
好吧,不管它是什么,都奏效了:
总结:找出virtualenv试图使用的解释器位置,并从该位置创建一个符号链接到实际的Python。在
您需要这样做的原因是,至少有几个virtualenv位置将有一个
#!
行,它引用一个特定的位置,但是如果您从编译自己的Python切换到使用PPA,则不会发生变化。在一开始我对这样做很犹豫,因为我更喜欢让包管理器来处理这类事情,而不是让我的路径太复杂。但似乎没有其他方法可以解决这个问题。我尝试卸载并重新安装
virtualenv
和virtualenvwrapper
,但没有成功。在¹Hmmm。。。在my.local/bin中有
pbr
。下一步呢,我的本地冰箱?该死的时髦货。相关问题 更多 >
编程相关推荐