使用不同的python安装virtualenv时出现断言错误
我的服务器有Python2.5,我想跳到最新的Python(在我的例子中是2.7.x)。我从源代码处编译了python,下载了最新的virtualenv(1.5.1) 现在基本上我想做的是:使用不同的python安装virtualenv时出现断言错误,python,virtualenv,Python,Virtualenv,我的服务器有Python2.5,我想跳到最新的Python(在我的例子中是2.7.x)。我从源代码处编译了python,下载了最新的virtualenv(1.5.1) 现在基本上我想做的是: ./packages/virtualenv/virtualenv.py --python=packages/Python-2.7/python env/ 打字: ./packages/virtualenv/virtualenv.py 规定: 1.5.1 键入时: packages/Python-2.7
./packages/virtualenv/virtualenv.py --python=packages/Python-2.7/python env/
打字:
./packages/virtualenv/virtualenv.py
规定:
1.5.1
键入时:
packages/Python-2.7/python
规定:
Python 2.7 (r27:82500, Nov 21 2010, 23:19:15)
[GCC 4.3.2] on linux2
(cut help mesage)
>>>
但是,运行virutalenv会导致:
AssertionError:Filename/packages/Python-2.7/Lib/os.py不以以下任何前缀开头:['/usr/local']
不管这意味着什么,不管我是谁,或者我没有做错什么
附言。
在构建env+python的过程中,我在阅读并处理了以下问题后,基于问题: 我发现这个错误可能与运行python的
/configure
时缺少--prefix
有关。所以我运行了/configure--prefix=/Path/To/Where/I/Want/Python/After/Compilation/
(在我的例子中是$HOME/packages/Python-2.7
),然后键入make
,然后make install
(没有使用sudo
,所以Python被安全地放在我告诉它是当前用户而不是root用户的位置)。在那之后,virtualenv的启动并没有因为AssertionError而崩溃,一切都像一个符咒
希望作者回答的这个问题最终能帮助别人。:) 我没有足够的代表将此作为评论添加,这个问题已经问了3年了,但这可能对某人有用。在Windows中,您必须指向python.exe,但在Linux/OS X中,您似乎只需要指向文件夹的路径。例如: 窗口:
virtualenv -p <PATH TO PYTHON.EXE> venv
virtualenv-p-venv
在当前目录的子文件夹“venv”中创建虚拟环境。我没有足够的代表添加评论。回答拯救我的一天。我正在使用windows 我得到了一个错误:
AssertionError: Filename C:\Python35\Lib\os.py does not start with any of these prefixes: ['c:\\python35', 'c:\\python35']
我必须运行这个-
virtualenv -p C:\Python35\python.exe venv
还需要从以管理员身份打开的cmd运行此命令。否则会导致错误
PermissionError: [WinError 5] Access is denied
有足够的代表发表评论的人,请将此作为评论添加到回答中。然后我会澄清我的问题。“希望作者回答的这个问题最终能帮助别人。”确实如此。谢谢。我在没有使用./configure的Windows 7上遇到了这个问题。在Windows上,我通过新安装修复了这个问题-请参阅://,您能否使用相对的
--前缀参数编译Python
?也就是说,如果编译的Python
被移动,通过--prefix
给出的相对路径会保持相对吗?这对我(在Ubuntu上)是有效的,只是当我意识到路径/to/Python不能与解压缩tar.gz的目录相同时。