2

我正在使用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)在确保我使用python 2.7的同时卸载并重新安装virutalenv、virutalenvwrapper?如果我这样做,旧的 virtualenv 会正常工作,还是我需要重新创建它?

或者

2)我可以以某种方式更新我的 virtualenv 中使用的二进制文件吗?


更新:
我刚刚从头开始创建了一个新的环境。
我没有卸载并重新安装virutalenv 或virtualenvwrapper。仍然不知道这是否会在以后咬我,但到目前为止似乎还可以。

仍然想明确知道在 virtualenv 包装器和 virtualenv 上更改 python 版本是否可以。

4

2 回答 2

3

virtualenvwrappercpvirtualenv命令。您是否尝试过从新的 Python 执行它?

如果这不起作用,您可以销毁旧的 virtualenv 并为您的项目创建一个新的。如果您一直在努力跟踪您的依赖关系(在setup.py或中requirements.txt),这应该很容易。如果你不勤奋,你可以使用pip freeze捕获当前安装的库。

于 2012-06-15T20:33:04.963 回答
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.

哇。它工作得很好……我想现在有一个月了。原来,也许我从来没有关闭我的 ssh 会话(即 virtualenvwrapper 从来没有重新启动)。

谷歌没有太大帮助。事实证明,问题正是错误消息所说的。没有为指定的 python 安装 Virtualenv。(2.7) 它是为我以前使用的版本安装的 (2.6) D'oh。

由于我不再真正使用 2.6,我只是重命名了包含我的本地站点包的目录

~/.local/lib/python2.6/site-packages

~/.local/lib/python2.7/site-packages

(站点包被附加到路径只是为了清楚我重命名的内容和原因)

同样,我可以使用 python2.7 二进制文件轻松运行 easy_install 或 pip 以将 virtualenvwrapper 安装到新的本地目录。(理论上应该已经创建了适当的站点包文件夹)

于 2012-07-10T07:05:19.170 回答