Virtualenv 为不同的 os 提供不同的版本
Virtualenv gives different versions for different os
我正在两个独立的系统 Debian Jessie 和 Mac El Capitan 上开发一个 django 项目。该项目托管在 github 上,两个系统都将从那里提取或推送到。
但是,我注意到在我的 Debian 上,当我 运行 python --version
时,它给了我 Python 3.4.2
但在我的 Mac 上,它给了我 Python 2.7.10
尽管处于同一个虚拟环境中。此外,当我在我的 Debian 上 运行 django-admin --version
时,它在我的 Mac、1.8.3
.
上给了我 1.10
即使我刚从 github 和 运行 命令克隆项目时也会发生这种情况。
为什么虚拟环境不保持python和django版本相同?
感谢@Oliver 和@Daniel 的评论让我找到了为什么它不起作用的答案。
我用 python 3 在我的 Debian 上启动了虚拟环境。virtualenv
创建了虚拟环境,但它是专门为 Debian 设计的。
当我将它用于 mac 时,由于它不能 运行 虚拟环境中的 python 可执行文件(因为它仅与 Debian 兼容),因此,它使用我的 Mac 的系统 python,即 Python 2.7.10.
综上所述,由于virtualenv
在系统上使用python可执行文件,当python可执行文件在另一个系统上运行时,它将无法运行。
现在您明白虚拟环境不能轻易地从一台机器转移到另一台机器。通常使用
pip freeze
命令并将其输出存储在名为 requirements.txt
的文件中。然后其他任何人都可以通过 运行
在他们的机器上重建您的环境
pip install -r requirements.txt
当你创建一个新的虚拟环境时,你可以通过 -p
或 --python
开关说出你想使用哪个 Python 解释器,后面应该是指向正确的可执行文件。
我个人建议不要以任何方式修改系统 Python,因为系统维护例程通常依赖于它的完整性。在像 /usr/local/bin
的地方安装 Python 2 和 3 的新副本相对简单(Mac 用户经常为此使用 brew
)并且虚拟环境依赖于不同的 Python 口译员。
我正在两个独立的系统 Debian Jessie 和 Mac El Capitan 上开发一个 django 项目。该项目托管在 github 上,两个系统都将从那里提取或推送到。
但是,我注意到在我的 Debian 上,当我 运行 python --version
时,它给了我 Python 3.4.2
但在我的 Mac 上,它给了我 Python 2.7.10
尽管处于同一个虚拟环境中。此外,当我在我的 Debian 上 运行 django-admin --version
时,它在我的 Mac、1.8.3
.
1.10
即使我刚从 github 和 运行 命令克隆项目时也会发生这种情况。
为什么虚拟环境不保持python和django版本相同?
感谢@Oliver 和@Daniel 的评论让我找到了为什么它不起作用的答案。
我用 python 3 在我的 Debian 上启动了虚拟环境。virtualenv
创建了虚拟环境,但它是专门为 Debian 设计的。
当我将它用于 mac 时,由于它不能 运行 虚拟环境中的 python 可执行文件(因为它仅与 Debian 兼容),因此,它使用我的 Mac 的系统 python,即 Python 2.7.10.
综上所述,由于virtualenv
在系统上使用python可执行文件,当python可执行文件在另一个系统上运行时,它将无法运行。
现在您明白虚拟环境不能轻易地从一台机器转移到另一台机器。通常使用
pip freeze
命令并将其输出存储在名为 requirements.txt
的文件中。然后其他任何人都可以通过 运行
pip install -r requirements.txt
当你创建一个新的虚拟环境时,你可以通过 -p
或 --python
开关说出你想使用哪个 Python 解释器,后面应该是指向正确的可执行文件。
我个人建议不要以任何方式修改系统 Python,因为系统维护例程通常依赖于它的完整性。在像 /usr/local/bin
的地方安装 Python 2 和 3 的新副本相对简单(Mac 用户经常为此使用 brew
)并且虚拟环境依赖于不同的 Python 口译员。