未找到Python和Ubuntu文件

未找到Python和Ubuntu文件,python,ubuntu,virtualenv,Python,Ubuntu,Virtualenv,我已经在我的Ubuntu 10.10上运行了好几个版本的Python,但是我在python2.5上遇到了一些问题(针对Google app engine) 所以我把2.5安装程序吹走了(并删除了站点包目录和Python2.5目录),然后重新安装了。。。出现相同错误,未找到存在的文件。。所以我想我会尝试安装虚拟环境并使用它。好吧,现在看来我所有的蟒蛇都用水管冲洗了 我无法从命令行执行py文件,例如“python.py”,我所有的版本都是这样。。所以我想知道,是否有一些全球性的设置,得到了冲洗??我

我已经在我的Ubuntu 10.10上运行了好几个版本的Python,但是我在python2.5上遇到了一些问题(针对Google app engine) 所以我把2.5安装程序吹走了(并删除了站点包目录和Python2.5目录),然后重新安装了。。。出现相同错误,未找到存在的文件。。所以我想我会尝试安装虚拟环境并使用它。好吧,现在看来我所有的蟒蛇都用水管冲洗了

我无法从命令行执行py文件,例如“python.py”,我所有的版本都是这样。。所以我想知道,是否有一些全球性的设置,得到了冲洗??我不知道该去哪里找。。下面的示例显示,可以导入virtualenv文件,但不能正常执行,只获取一个not found。。我确实更改了在virtualenv.py文件上执行的权限,但没有任何区别。我在Python的多个版本2.6、2.7(除2.5外)上安装了virtualenv,并且我在所有版本上都得到了相同的行为,因此我怀疑Bash或Ubuntu中的某些东西,而不是Python而不是virtual env

enter code here
tom@tom-Satellite-A105:~$ python2.5 virtualenv.py env
python2.5: can't open file 'virtualenv.py': [Errno 2] No such file or directory
tom@tom-Satellite-A105:~$ 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 fine
同时启动我的备用计算机:-(

导入它时,它会通过Python路径找到它,但当您输入:

python2.5 virtualenv.py

这假设它在当前目录中。

跟踪此类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使用您的脚本调用python,一个打开的脚本和一个不存在的文件,然后区分跟踪……我猜您会发现错误在别处,但报告的错误是错误的


如果virtualenv.py不在本地文件夹中,您可以尝试显式地设置PYTHONPATH以查看是否可以修复它(请参阅“python-h”),如果可以,那么请查看在其工作的设置上修改sys.path的内容(例如再次运行strace)

这有点帮助,但我记得virtualenv通常很容易使用..而且去安装位置是不容易的,而且它无法写入生成的env文件…当然我可以去sudo,但这种方式进一步挫败了这一想法..所以我显然把安装或路径搞砸了???结果:OSError:[Errno 13]权限被拒绝:“env1”这将是一个很大的帮助。(存档以备将来使用).事实证明,我遇到的主要问题是,我使用的是Pythonpath vs系统路径设置..不确定如何解释该问题,以及如何概括我需要的内容,在本例中,我需要将Google app engine SDK放在系统路径上,(而不是Pythonpath),但它确实解决了我的特定问题。。