2017-01-23 130 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版本構建您的虛擬環境,然後通過需求文件重新安裝新的軟件包。 –

相關問題