2012-08-14 45 views
0

我正在开发一个Web应用程序,并且需要从两台计算机完成工作,一台运行Linux,另一台运行Windows。在Windows和Linux上开发Web应用程序

这个程序是有关于Python 2.6.7金字塔框架开发的(这是服务器运行时,我不能改变它)

继金字塔站点上的教程,我创建了一个virtualenv Linux机器,并创建了一个项目 - 测试它,它似乎运行没有问题在Linux机器上。现在为了将工作同步到Windows,我想到了使用git(使用来自bitbucket的免费私人projcet)。我创建了一个git项目并将其推送到bitbucket。我用这个.gitignore文件模板,我还添加了这行(我相信VENV是操作系统特定的,但我可能是错的):

venv 

我克隆了一个项目到Windows后,我没有virtualenv - 如何创建一个与Linux机器上存在的Venv兼容的Venv(我的Windows机器上已安装Python 2.7,没有sqlalchemy等)?什么是“正确”的做法?我应该只是给应用程序(这是一个拼写错误,,但我现在就离开它)Windows并在virtualbox上使用Ubuntu?

编辑:

虽然我已经接受了关于使用requirements.txt文件Rostyslav Dzinko的答案,正确的方法是实际使用内置在由金字塔的支架机构在pcreate过程中产生的setup.py 。因此,如果有人遇到此问题,请考虑尝试:

python setup.py develop 
+0

您在Windows中安装了哪个Python版本(以及发行版,例如ActiveState)? – 2012-08-14 14:18:49

+0

@VasileiosLourdas我在Windows上有一个官方的CPython 2.7.2,但是在这台机器上我可以安装任何我想要/需要的东西。 – zenpoy 2012-08-14 14:22:56

回答

2

Virtualenv为您的Python解释器创建虚拟环境。这意味着每个虚拟环境可以安装相同软件包的不同版本,或者只有您的项目(依赖性)才具有重要性的不同软件包。

如果要管理依存关系,可以使用pip使新虚拟环境与旧虚拟环境同步。

所有你需要做的是创造requirements.txt文件,并依赖填充它,e.g:

pyramid==1.0.1 
... 

让这个文件在你的git仓库。

克隆源到新创建的virtualenv在新机器上后,你可以用PIP安装所有的依赖关系:

pip install -r requirements.txt 
+0

我应该在Linux机器上运行'venv/bin/pip freeze> requirements.txt'吗? – zenpoy 2012-08-14 14:27:17

+0

这取决于你。pip freeze用于支持在别处安装不同版本的项目(具有不同的依赖关系)。如果你计划 - 你应该这样做。 – 2012-08-14 14:28:49

+0

感谢您的回答!另一个快速 - 在Windows上创建virtualenv并使用pip之前,是否需要在Windows上安装安装在Linux上的相同版本的python和virtualenv? – zenpoy 2012-08-14 14:37:59

0

一个的virtualenv是安装在你的系统上的Python运行时环境。它不是你的代码库的一部分,所以不应该在你的Git仓库中。

在您使用的每台机器上分别安装virtual-env。

+0

感谢您的回答,但正如我在问题中所述,我将venv目录添加到'.gitignore'文件中。我的问题是如何在两个不同的操作系统中同步两个virtualenv – zenpoy 2012-08-14 14:46:04

相关问题