2017-01-23 51 views
0

我一直在成功地使用虚拟环境,但这是我第一次遇到这样的问题。虚拟环境在不同的机器上启动不同版本的python

在我的虚拟环境中,我有Python 3.5 + Django包+其他包的数量。我成功地运行我的Django应用程序使用Python 3.5从虚拟环境在机器上。

在机器B上,在我source env/bin/activate我的虚拟环境之后。 python命令将启动Python 2.7 +不存在Django包。

我如何进行调查并使Venv在两台机器上的行为方式相同?

+0

你是如何迁移虚拟ENV? –

+0

例如,你在.bashrc中有什么东西可以将Python 2.7放在路径上? – Metropolis

+0

可能的重复[在python2虚拟环境中安装python3](http://stackoverflow.com/questions/41390053/installing-python3-in-a-python2-virtual-environment) – e4c5

回答

0

有两种选择可以在虚拟环境中获得相同的Python版本。

  1. 检查是否有Python的3.5键入

    python3 -V 
    

    进入命令行计算机上安装。如果说3.5.x的,你可以去和创建

    pyvenv /path/to/your/new/venv 
    

    虚拟环境中您可以安装你的包(Django的,等等):

    机器A

    pip freeze > requirements.txt 
    

    转移上requirements.txt到机器B并做

    source /path/to/your/new/venv/bin/activate 
    pip install -r requirements.txt 
    
  2. 如果您的c语言版本c hecked in 1.不是3.5.x,你必须自己编译这个版本。检查这个问题Use different Python version with virtualenv

+0

感谢Matthias!现在我变得非常困惑。我一直认为虚拟环境实际存储了您安装的所有Python版本和软件包,因此当您将虚拟环境移动到另一台计算机时 - 所有这些Python和包都在venv文件夹中等待您。情况并非如此吗? – Dennis

+0

我不知道所有的细节。但建议使用相同的Python版本构建您的虚拟环境,然后通过需求文件重新安装新的软件包。 –

相关问题