【问题标题】:Virtualenv wont work onVirtualenv 无法正常工作
【发布时间】:2012-10-24 20:23:34
【问题描述】:

我已经用这个命令构建了我的虚拟环境:

virtualenv env --distribute --no-site-packages

然后我用 pip 将几个模块(django 等)安装到 env 中,问题是当我想在第二台机器上运行代码时它不起作用,这是我所做的:

visgean@rewitaqia:~/scripty/project_name$ source ./env/bin/activate
(env)visgean@rewitaqia:~/scripty/project_name$ python
Python 2.7.1+ (r271:86832, Sep 27 2012, 21:12:17) 
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> django.__file__
'/home/visgean/scripty/project_name/env/lib/python2.7/site-packages/django/__init__.pyc'

但是当我想在第二台机器上运行它时:

(env)user@debian:~/project_name$ python
Python 2.6.6 (r266:84292, Dec 27 2010, 00:02:40) 
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named django
>>> 

出现我野错误!第一台机器是ubuntu,第二台机器是ubuntu。 /home/user/project_name/env/lib/python2.7 中似乎有一些断开的链接,这是问题吗?如果是这样,我应该如何预防/修复它?

【问题讨论】:

  • 您是否在第二根软管上安装了与第一根相同的所有软件包?
  • 您正在将环境复制到第二台机器?

标签: python django virtualenv pip


【解决方案1】:

如果您只是将 virtualenv 复制到第二台机器上,您可能会遇到一些问题。从 virtualenv 网站:

通常环境与特定路径相关联。这意味着你 无法移动环境或将其复制到另一台计算机。你 可以使用以下命令修复环境以使其可重定位:

$ virtualenv --relocatable ENV

这将使一些文件 由 setuptools 创建或分发使用相对路径,并将 将所有脚本更改为使用 activate_this.py 而不是使用 用于选择环境的 Python 解释器的位置。

注意:您必须在将任何软件包安装到 环境。如果您使环境可重定位,则安装一个 新包,你必须再次运行 virtualenv --relocatable。

【讨论】:

    【解决方案2】:

    我刚刚注意到我确实在第二台机器上安装了错误的python版本-debian没有python2.7,安装2.7和pip for是解决方案

    【讨论】:

    • 要在两个 virtualenvs 上使用相同版本的 Python(你应该这样做),你应该在你的 debian 机器上的某个地方安装 python2.7 并执行类似virtualenv -p /usr/bin/python2.7 的操作(这样你就不用必须更改系统默认的 python 可执行文件)
    猜你喜欢
    • 1970-01-01
    • 2020-08-04
    • 2015-03-27
    • 1970-01-01
    • 2018-06-27
    • 2016-12-01
    • 1970-01-01
    • 2020-04-17
    • 1970-01-01
    相关资源
    最近更新 更多