我正在使用virutalenvwrapper并为我的django应用程序创建了virtualenv。我正在运行python 2.6.1。当时我设置了这个 不幸的是,python 2.6.1有关于在kwargs中传递unicode字符串的错误。因此,我正在寻找更新我的vritualenv使用的python二进制文件。
Python 2.7.2已全部安装完毕。我只需要了解什么是“迁移”我当前的virtualenv以使用新的python二进制文件的最佳方法。
据我所知,virtualenv和virtualenvwrapper对安装过程中使用的python很敏感。那我呢,
1)卸载并重新安装virtualenv,virutalenvwrapper,同时确保我使用的是python 2.7?如果我这样做,旧的virtualenv会起作用,还是我需要重新创建它?
或
2)我能以某种方式更新我的virtualenv中使用的二进制文件吗?
更新
我刚刚从零开始创建一个新的环境
我没有卸载并重新安装virutalenv或virtualenvwrapper。仍然不知道这是否会在以后咬我,但到目前为止似乎没问题。
如果在virtualenv wrapper和virtualenv上更改python版本是否可以,我们仍然想知道。
答案 0 :(得分:3)
virtualenvwrapper
有一个cpvirtualenv
命令。您是否尝试过从新Python执行该操作?
如果这不起作用,你可以销毁旧的virtualenv并为你的项目创建一个新的。如果您一直在努力跟踪您的依赖关系(在setup.py
或requirements.txt
中),那应该很容易。如果您没有勤奋,可以使用pip freeze
来捕获当前安装的库。
答案 1 :(得分:0)
为了其他可能正在阅读此内容的人的利益 今天突然变成了一个问题。通过ssh登录后,我看到了
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named virtualenvwrapper.hook_loader
virtualenvwrapper.sh: There was a problem running the initialization hooks. If Python could not import the module virtualenvwrapper.hook_loader, check that virtualenv has been installed for VIRTUALENVWRAPPER_PYTHON=/home/*******/opt/bin/python and that PATH is set properly.
WTF。它的工作正常...我猜一个月了。结果可能我从未关闭过我的ssh会话(即virtualenvwrapper永远不必重启)。
谷歌没有多大帮助。事实证明,问题正是错误信息所说的。没有为指定的python安装Virtualenv。 (2.7) 它是为我之前使用的版本安装的(2.6) D'哦。由于我不再使用2.6,我只是重命名了包含我的本地站点包的目录
~/.local/lib/python2.6/site-packages
到
~/.local/lib/python2.7/site-packages
(网站包附加到路径上只是为了明确我重命名的内容和原因)
同样,我可以轻松运行easy_install或pip,使用python2.7二进制文件将virtualenvwrapper安装到新的本地目录。 (理论上应该创建适当的site-packages文件夹)