我正在研究两个独立系统上的django项目,Debian Jessie和Mac El Capitan。该项目托管在github上,两个系统都将从中拉出或推送到。
然而,我注意到在我的Debian上,当我运行python --version
时,它会给我Python 3.4.2
,但在我的Mac上,尽管处于相同的虚拟环境中,它仍然给我Python 2.7.10
。此外,当我在我的Debian上运行django-admin --version
时,它会在我的Mac上1.10
给我1.8.3
。
即使我从github重新克隆项目并运行命令,也会发生这种情况。
为什么虚拟环境不保留相同版本的python和django?
答案 0 :(得分:0)
感谢@Oliver和@ Daniel的评论,这些评论引导我解答为什么它不起作用。
我使用python 3在我的Debian上启动了虚拟环境。virtualenv
创建了虚拟环境,但它专门用于Debian。
当我将它用于mac时,因为它无法在虚拟环境中运行python可执行文件(因为它只与Debian兼容),因此,它使用了我的Mac系统python,即Python 2.7。 10。
总之,由于virtualenv
在系统上使用python可执行文件,当python可执行文件在另一个系统上运行时,它将无法工作。
答案 1 :(得分:0)
现在您了解虚拟环境无法轻松地从一台机器传输到另一台机器。
是很常见的pip freeze
命令并将其输出存储在名为requirements.txt
的文件中。然后其他任何人都可以通过运行
pip install -r requirements.txt
当您创建新的虚拟环境时,您可以说明要使用哪个Python解释器与-p
或--python
开关一起使用,后面应该跟有正确可执行文件的路径。
我个人建议不要以任何方式修改系统Python,因为系统维护例程通常依赖于它的完整性。安装Python 2和3的新副本相对简单,比如/usr/local/bin
(Mac用户经常使用brew
)并且拥有依赖于不同Python解释器的虚拟环境。