首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >虚拟环境的跨平台接口

虚拟环境的跨平台接口
EN

Stack Overflow用户
提问于 2012-08-20 07:38:30
回答 1查看 11.1K关注 0票数 19

我已经在Windows上开发了我的整个项目(Django,Python),所有的PaaS都使用Linux。

代码语言:javascript
复制
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上放置一个虚拟版本。我怎么才能激活它?

什么是最好的解决方案

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-20 08:27:40

除非您使用一些特定于Windows的库;或者使用另一个Python实现(如IronPython),否则就没有什么可担心的了。

许多人(包括我自己)使用Windows进行开发,并在Linux上部署用于生产,并为此使用virtualenv。它旨在使您的环境便携。

您不能将整个虚拟环境都推到Linux上。

一旦您准备好了虚拟环境,并且您的代码正在工作,您应该冻结应用程序的需求:

代码语言:javascript
复制
pip freeze > requirements.txt

在目标操作系统中;创建一个空的虚拟环境:

代码语言:javascript
复制
virtualenv --no-site-packages prod_env

在最近版本的virtualenv中,--no-site-packages是默认的。

接下来,使用开发中的需求文件填充环境:

代码语言:javascript
复制
source prod_env/bin/activate
pip install -r requirements.txt

当发生需求更改时,只需重新生成requirements.txt文件并在生产中运行pip install -r requirements.txt即可。

在某些情况下,您的生产系统无法访问互联网下载软件包,因此pip install技巧无法工作。对于这些场景,您可以创建自己的专用pypi服务器并将包推到那里。通过这条路径的额外好处是,您可以创建和推送私有包,并使用常规的setuptools实用程序来安装它们。

一旦您决定了哪个流程适合您--然后在您的部署脚本中将其自动化;通常在源代码管理系统中使用钩子。有些人更喜欢一个单独的发布工程过程(有一个发布经理--也就是一个人,而不是一个程序)。

票数 32
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12033861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档