我已经在Windows上开发了我的整个项目(Django,Python),所有的PaaS都使用Linux。
VirtualEnv on Linux:
VirtualEnv_dir /
bin/ activate, activate_this.py
include /
lib /
local /
VirtualEnv of Windows:
VitualEnv_dir /
Include/
Lib /
Scripts/ activate.bat, activate_this.py在windows & Linux中,正如虚拟化一样,有很多不同之处。我应该如何在PaaS上使用我的窗口虚拟主机呢?
编辑:
如果我在windows上,我需要运行call virtualenv_dir/scripts/activate.bat才能进入它。就像在Linux中一样,它是source virtualenv_dir/bin/activate。
现在,我的repo保存了一个使用Windows (它使用.bat)生成的虚拟主机。当我将回购推送到Linux系统时,我应该如何运行它呢?(bat文件无法工作!)
我使用的是OpenShift PaaS,在这里我想在Git上放置一个虚拟版本。我怎么才能激活它?
什么是最好的解决方案
发布于 2012-08-20 08:27:40
除非您使用一些特定于Windows的库;或者使用另一个Python实现(如IronPython),否则就没有什么可担心的了。
许多人(包括我自己)使用Windows进行开发,并在Linux上部署用于生产,并为此使用virtualenv。它旨在使您的环境便携。
您不能将整个虚拟环境都推到Linux上。
一旦您准备好了虚拟环境,并且您的代码正在工作,您应该冻结应用程序的需求:
pip freeze > requirements.txt在目标操作系统中;创建一个空的虚拟环境:
virtualenv --no-site-packages prod_env在最近版本的virtualenv中,--no-site-packages是默认的。
接下来,使用开发中的需求文件填充环境:
source prod_env/bin/activate
pip install -r requirements.txt当发生需求更改时,只需重新生成requirements.txt文件并在生产中运行pip install -r requirements.txt即可。
在某些情况下,您的生产系统无法访问互联网下载软件包,因此pip install技巧无法工作。对于这些场景,您可以创建自己的专用pypi服务器并将包推到那里。通过这条路径的额外好处是,您可以创建和推送私有包,并使用常规的setuptools实用程序来安装它们。
一旦您决定了哪个流程适合您--然后在您的部署脚本中将其自动化;通常在源代码管理系统中使用钩子。有些人更喜欢一个单独的发布工程过程(有一个发布经理--也就是一个人,而不是一个程序)。
https://stackoverflow.com/questions/12033861
复制相似问题