【问题标题】:how to bring out django project from virtualenv如何从 virtualenv 中取出 django 项目
【发布时间】:2017-01-05 17:12:12
【问题描述】:

我在 virtualenv 中有 django 项目,现在我在服务器上发布它,但问题是我无法从 virtualenv 移动项目,当我这样做时,站点包中的相关包,无法读取并发生错误,怎么能我从 virtualenv 中取出我的项目,没有任何发行

【问题讨论】:

  • 你不能在服务器上创建一个新的virtualenv并匹配你的项目依赖吗?
  • 我可以在服务器上创建新的virtualenv,但我不想在服务器上使用virtualenv,而是想在没有virtualenv的情况下运行项目
  • 那么您只需要在服务器上安装依赖项即可。正如 e4c5 所说,您可以使用 pip freeze 来获取您的依赖项
  • 经验:在部署 Django(或其他任何基于 Python 的)项目时,永远不要依赖系统的库和包。这一天或一天​​中断,除非您不再对系统进行任何更新(这也不是一种选择)。
  • 请按照此处的标准做法将答案标记为正确。谢谢。

标签: django virtualenv


【解决方案1】:

在服务器上创建一个新的 virtualenv。很简单

Step 1 获取当前virtualenv中的模块列表

source /path/to/current/bin/activate
pip freeze > /tmp/requirements.txt

第 2 步创建一个新的 virtualenv。登录到您的新服务器,将需求文件复制到那里。然后在执行 virtualenv 命令之前切换到合适的目录或给出完整路径。

 deactivate
 virtualenv -p python envname

步骤 3 安装模块

source envname/bin/activate
pip install -r /tmp/requirements.txt

就是这样。

正如@bruno 所指出的,您确实应该在服务器上使用 virtualenv。您也应该在本地开发服务器上使用它。然后你就可以真正确定代码会在两端运行而不会有任何意外。

【讨论】:

  • okey 是的,我可以这样做,但我不想使用 virtualenv,我想在 virtualenv 之外运行项目
  • @huseyinozanhonamlioglu 为什么? Virtualenv 在这方面做得很好。
  • @huseyinozanhonamlioglu 是的,您确实想在您的生产服务器上使用 virtualenv - 这就是您保证它将在预期环境中运行并且不会在系统管理员执行时中断的方式任何系统更新。
  • hımmm Okey 所以你说使用 virtualenv 的正确方法?那么好吧,我会那样做的。
  • 我真的不明白你究竟是如何与这个相关的。当您说“我切换 django 自己的服务器”时,如果您的意思是您在生产中使用 django 开发服务器。不!看到这个:stackoverflow.com/questions/39855652/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-26
  • 2012-04-06
  • 1970-01-01
  • 2019-03-25
  • 2016-06-26
  • 1970-01-01
相关资源
最近更新 更多