2012-10-24 74 views
1

不會工作我必須建立自己的虛擬ENV用這個命令:VIRTUALENV上

virtualenv env --distribute --no-site-packages 

然後,我已經安裝了幾個模塊(Django的等)與PIP ENV,問題是,當我想運行第二臺機器就不會工作,這裏的代碼是我做了什麼:

[email protected]:~/scripty/project_name$ source ./env/bin/activate 
(env)[email protected]:~/scripty/project_name$ python 
Python 2.7.1+ (r271:86832, Sep 27 2012, 21:12:17) 
[GCC 4.5.2] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import django 
>>> django.__file__ 
'/home/visgean/scripty/project_name/env/lib/python2.7/site-packages/django/__init__.pyc' 

但是當我想要第二臺機器上運行它:

(env)[email protected]:~/project_name$ python 
Python 2.6.6 (r266:84292, Dec 27 2010, 00:02:40) 
[GCC 4.4.5] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import django 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: No module named django 
>>> 

我出現了野生錯誤!第一臺機器是ubuntu,第二臺機器是ubuntu。 /home/user/project_name/env/lib/python2.7中似乎有一些中斷的鏈接,是這個問題嗎?如果是這樣,我應該如何防止/修復它?

+0

你安裝所有相同的包在第二個軟管上如同第一個? –

+1

您正在將env複製到第二臺機器上? –

回答

0

我剛纔注意到,我確實有第二臺機器上的一個錯誤版本的Python - Debian不會有python2.7,安裝2.7和PIP的是解決方案

+2

要在兩個virtualenvs(你應該這樣做)上使用相同版本的Python,你應該在你的debian機器的某個地方安裝python2.7並且執行一些類似'virtualenv -p/usr/bin/python2.7'的操作(所以你不必更改系統默認的python可執行文件) – lajarre

2

如果您只是將virtualenv複製到第二臺機器,您可能會遇到一些問題。從virtualenv站點:

通常情況下,環境綁定到特定的路徑。這意味着你 不能移動環境或將其複製到另一臺計算機。您 可以修復了一個環境,使之與命令重定位:

$ virtualenv --relocatable ENV

這會讓一些由setuptools的創建的文件 或發佈使用相對路徑,並將 改變所有的腳本使用activate_this.py而不是使用Python解釋器的 位置來選擇環境。

注意:您必須在將任何軟件包安裝到 環境中後運行此操作。如果您使環境可重新定位,然後安裝 新軟件包,則必須再次運行virtualenv --relocatable。