【问题标题】:Developing a web-app on Windows and Linux在 Windows 和 Linux 上开发 Web 应用程序
【发布时间】:2012-08-14 14:09:42
【问题描述】:

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

这个应用是在 Python 2.6.7 上使用 Pyramid 框架开发的(这是服务器运行的,我无法更改)

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

venv

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

编辑:

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

python setup.py develop

【问题讨论】:

  • 您在 Windows 中安装了哪个 Python 版本(和发行版,例如 ActiveState)?
  • @VasileiosLourdas 我在 Windows 上有一个官方的 CPython 2.7.2,但是在这台机器上我可以安装我想要/需要的任何东西。

标签: python git cross-platform virtualenv


【解决方案1】:

Virtualenv 为您的 Python 解释器创建虚拟环境。这意味着每个虚拟环境可以安装不同版本的相同包或完全不同的包,这些包仅对您的项目很重要(依赖项)。

如果你想管理依赖,你可以使用pip让你的新虚拟环境与旧的同步。

您需要做的就是创建requirements.txt 文件并用依赖项填充它,例如:

pyramid==1.0.1
...

让这个文件在你的 git 存储库中。

将源码克隆到新机器上新建的virtualenv后,可以用pip安装所有依赖:

pip install -r requirements.txt

【讨论】:

  • 我应该在Linux机器上运行venv/bin/pip freeze > requirements.txt吗?
  • 这取决于你。 pip freeze 用于支持在其他地方安装项目的不同版本(具有不同的依赖项)。如果你计划这样做 - 你应该这样做。
  • 感谢您的回答!另一个快速的 - 在 Windows 上创建 virtualenv 并使用 pip 之前,我是否需要在 Windows 上安装与 Linux 上安装的相同版本的 python 和 virtualenv?
  • 强烈推荐,肯定不会出现不兼容问题
【解决方案2】:

virtual-env 是安装在系统上的 Python 运行时环境。它不是您的代码库的一部分,因此不应该在您的 Git 存储库中。

在您使用的每台机器上单独安装一个虚拟环境。

【讨论】:

  • 感谢您的回答,但正如我在问题中已经说明的那样,我将 venv 目录添加到 .gitignore 文件中。我的问题是如何在两个不同操作系统中的两个 virtualenv 之间同步
猜你喜欢
  • 2010-11-17
  • 2016-01-04
  • 2010-12-02
  • 2018-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多