2011-08-27 77 views
1

我一直在Ubuntu 10.10上運行好幾個版本的Python,但是我有一些python2.5的問題(對於谷歌應用程序引擎) 所以我把2.5安裝帶走了(並刪除site-packages目錄以及Python2.5目錄)並重新安裝...得到了同樣的錯誤,,一個文件沒有找到那裏..所以我想我嘗試安裝虛擬環境和工作與。現在好了,這一切似乎我的蟒蛇正在用水管沖洗..找不到Python和Ubuntu文件

我不能在命令行如執行PY文件。 「python python.py」,這是我所有版本的情況..所以我想知道是否有一些全局設置,沒有線索在哪裏看..下面的例子顯示,virtualenv文件可以導入,但不能正常執行,只是得到一個未找到..我沒有改變權限執行virtualenv.py文件,但那沒有區別。我有幾個版本的Python,2.6,2.7(2.5除外)上安裝virtualenv,我得到的所有相同的行爲,所以我懷疑Bash或在Ubuntu的東西,而不是Python不虛擬環境。

enter code here 
[email protected]:~$ python2.5 virtualenv.py env 
python2.5: can't open file 'virtualenv.py': [Errno 2] No such file or directory 
[email protected]:~$ python2.5 
Python 2.5.6 (r256:88840, Aug 6 2011, 08:40:44) 
[GCC 4.4.5] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 

>>> import virtualenv 
>>> exit() 

^^^^^^顯示的python2.5可以導入的virtualenv精細 同時啓動備用我:-(機

回答

1

跟蹤這樣的WTF的一個很好的起點是在strace下運行這個過程,它將大量報告所做的系統調用和每個結果...然後你可以看到它是否真的是不可以的文件可以發現,或其他一些問題

$ trace python NOFILE.py 
execve("/usr/bin/python", ["python", "NOFILE.py"], [/* 63 vars */]) = 0 
brk(0)         = 0x9bef000 
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb78de000 
access("/etc/ld.so.preload", R_OK)  = -1 ENOENT (No such file or directory) 
open("/etc/ld.so.cache", O_RDONLY)  = 3 
fstat64(3, {st_mode=S_IFREG|0644, st_size=160388, ...}) = 0 
mmap2(NULL, 160388, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb78b6000 
close(3)        = 0 
    ...[snip]... 
stat64("NOFILE.py", 0xbfbc53bc)   = -1 ENOENT (No such file or directory) 
stat64("NOFILE.py", 0xbfbc53cc)   = -1 ENOENT (No such file or directory) 
open("NOFILE.py", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory) 
write(2, "/usr/bin/python2.6: can't open f"..., 85/usr/bin/python2.6: can't open file 'NOFILE.py': [Errno 2] No such file or directory) = 85 
exit_group(2)       = ? 

例如strace的調用蟒蛇與你的腳本,那不開一個腳本,一個不存在的文件,然後diff的痕跡....我的猜測是你」會找到錯誤是在其他地方,但該錯誤報告錯誤

如果virtualenv.py不在本地文件夾,你可以嘗試明確設置PYTHONPATH看能否解決(詳見「蟒蛇-H」),如果這樣的話,看看發生了什麼修改上的設置,其中它的工作(如再次運行strace的)

+0

這將是一個很大的幫助。 (存檔以備將來使用)。事實證明,我遇到的主要問題是我正在使用Pythonpath與系統路徑設置..不完全確定如何解釋這個問題,以及如何在我需要的時候概括我需要的,在這種情況下,我需要將Google-app-engine SDK放在系統路徑中(不是Python路徑),但它確實修復了我的特定問題。 – dartdog

2

當你導入它,它通過Python路徑中找到它,但是當你輸入:

python2.5 virtualenv.py 

假設它在第當前目錄。

+0

以及諸如此類的幫助sys.path中, ,但正如我記得virtualenv通常很容易使用..並下降到安裝位置不是,除此之外,它不能寫出最終的環境文件...當然,我可以去sudo但這種進一步挫敗了這個想法..所以我明顯地搞砸了安裝或路徑?結果:OSError:[Errno 13] Permission denied:'env1' – dartdog