2016-01-25 30 views
5

我有一個virtualenv位於/home/user/virtualenvs/Environment。現在我需要在另一臺PC上使用這個環境。所以我安裝了virtualenv-clone並用它來克隆/Environment。然後我通過USB將它複製到另一臺PC上。我可以source activate激活它,但是當我嘗試使用sudo ./Environment/bin/python啓動Python解釋器,我得到複製完成virtualenv到另一臺電腦

./bin/python: 1: ./bin/python: Syntax Error: "(" unexpected 

執行它沒有sudo給我一個錯誤,告訴我有在二進制文件格式的錯誤。 但是,這怎麼可能?我只是複製它。還是有更好的方法來做到這一點?我不能僅僅使用pip freeze,因爲我自己編寫的/Environment/lib/python2.7/site-packages/中有一些包,我也需要複製它們。據我瞭解,pip freeze只是創建一個包,然後下載和安裝的軟件包列表。

+0

那些軟件包是如何進入站點包的呢?你必須安裝它們,當然它們必須存在於某個地方的版本控制中。 –

+0

我創建了一個文件夾,添加了一個'__init __。py'並將模塊放在那裏,這樣我就可以從我的項目中訪問它們,它使用virtualenv。 – vicco

+0

那麼你不應該這樣做。你打算如何部署這些庫?您需要將它們放置在可以從中安裝的位置,並且需要將它們打包,以便可以通過點安裝它們。或者,如果他們只是你項目的一部分,他們應該在你自己的項目中。 –

回答

5

執行下面的源計算機上的步驟

  1. workon [environment_name]
  2. PIP冷凍> requirements.txt
  3. 拷貝requirements.txt到其他PC

在其他PC

  1. 使用mkvirtualenv創建虛擬環境[ environment_name]
  2. workon [environment_name]
  3. PIP安裝-r requirements.txt

你應該做的事!

similar questionHow to Copy/Clone a Virtual Environment from Server to Local Machine

+0

這是否也複製了我自己編寫的'site-packages'中的軟件包? – vicco

+0

它將在源計算機上創建工作環境的副本。它會自行下載它所需的全部內容 –

+0

我不太瞭解它如何重新創建我自己從文本文件中編寫的包? requirements.txt只包含可供下載的軟件包。 – vicco

1

我認爲發生的是,你只是在源文件中複製符號鏈接到目標機器的二進制文件(不再鏈接)。您應該使用rsync -l將其複製以保留這些鏈接。

相關問題