2011-08-27 74 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