【问题标题】:Installing django with easy_install in a virtualenv在 virtualenv 中使用 easy_install 安装 django
【发布时间】:2015-09-29 15:16:19
【问题描述】:

我是 virtualenv 的新手,所以也许我只是忽略了一些东西。我已经成功设置了一个虚拟环境。我已经运行了activate.bat,这在命令窗口和检查PATH 环境变量时很明显。

我在我的虚拟环境中的 Windows 上运行 64 位 Python 2.7.8。激活 virtualenv 后,我执行easy_install django,它会安装 django,但会全局安装而不是隔离环境。我通过启动解释器并输入import django...来确认这一点,导致导入错误。

没有跳过一个节拍,我在同一个激活的命令提示符下尝试了pip install django,它就像一个魅力。

所以...与easy_install...什么给出?这是easy_install 错误还是virtualenv 错误?不幸的是,由于通过easy_install 安装的 django 没有安装失败(它是全局安装的),我没有提供有用的错误消息。

【问题讨论】:

  • 我不确定你在问什么。正确使用的工具是 pip,easy_install 早于 virtualenv 并且没有真正意识到这一点。
  • 好吧,那为什么要把它包含在 virtualenv 安装中呢?

标签: python django virtualenv easy-install


【解决方案1】:

我从不使用activate.bat 脚本。如果我这样做了,我最终会遇到问题(编辑 - 在稍微研究一下之后,我怀疑它是使用旧 MS-DOS 提示符的人的遗留脚本)。使用activate.ps1 脚本。

...\virtualenv_name\Scripts\activate.ps1

您可能需要更改权限(请参阅指南中的the execution policy section)。据我了解,RemoteSigned 策略优于 Unrestricted

您应该在命令提示符处获得一个带有您的 virtualenv 名称的前缀。像(virtualenv_name) PC C:\> 这样的东西现在 pip 应该可以工作了:

pip install django

您可以使用easy_install,但是......不要因为 pip 是标准。除非您有特殊情况可以使用,而 pip 没有。

【讨论】:

  • 我想这就是它的方式;)
  • 我不得不将我的执行策略设置为Unrestricted 才能让它工作,这很不幸。并得到这个,从 powershell 激活的 virtualenv 中执行 easy_install django 工作。很想知道为什么会有差异,但我需要回去工作......
  • 关于此方法的更多评论...我必须从 Scripts 目录运行 .\activate 才能切换到 virtualenv,但随后必须运行 deactivate(减去点和尾随反斜杠)以停用它。换句话说,这有效.\activate,这无效activate,而这有效deactivate,这无效.\deactivate。我可以很好地猜到为什么这里的差异,只是看起来有点反直觉......
  • @ionalchemist 这是powershell的限制/设计功能。我要做的是 1) 将 activate.ps1 重命名为 activate_some_identifier.ps1 2) 将每个 virtualenv\Scripts 目录添加到我的路径中,然后 3) 开始输入 activa,然后输入 tab-tab-tab,直到找到我想要的激活。另外,如果这对您有用(我猜其他人会遇到批处理文件问题),您能否将其标记为已解决?
  • 虽然我感谢您的回答和我们的讨论,但它并没有回答我的问题,即关于 easy_install 以及它失败的原因。这就是我所追求的......谢谢
猜你喜欢
  • 2014-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-06
  • 2014-03-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多