Файл Python и Ubuntu не найден - PullRequest
       14

Файл Python и Ubuntu не найден

1 голос
/ 27 августа 2011

Я какое-то время запускал несколько версий Python на своем Ubuntu 10.10, но у меня были некоторые проблемы с python2.5 (для Google app-engine), поэтому я отказался от установки 2.5 (и удалил каталог site-packages).вместе с каталогом Python2.5) и переустановил ... получил ту же ошибку ,, файл не найден, который был там .. поэтому я решил, что я пытаюсь установить Virtual ENV и работать с этим.ну, теперь кажется, что все мои питоны скрыты ..

Я не могу выполнить py-файл из командной строки, например."python python.py", и это относится ко всем версиям, которые у меня есть .. поэтому мне интересно, есть ли какие-то глобальные настройки, которые были использованы?понятия не имею, где искать .. Пример ниже показывает, что файл virtualenv может быть импортирован, но не может быть выполнен как обычно, просто получает не найден .. Я изменил разрешения на выполнение для файла virtualenv.py, но этоне имеет значения.У меня есть virtualenv, установленный на нескольких версиях Python, 2.6, 2.7 (в дополнение к 2.5), и я получаю одинаковое поведение на всех, поэтому я подозреваю, что Bash или что-то в Ubuntu, а не python, не виртуальная среда ..

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. А пока запускается моя альтернативная машина: - (

Ответы [ 2 ]

2 голосов
/ 27 августа 2011

Когда вы импортируете его, он проходит путь Python, чтобы найти его, но при вводе:

python2.5 virtualenv.py

предполагает, что он находится в текущем каталоге.

1 голос
/ 28 августа 2011

Хорошей отправной точкой для отслеживания таких 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)

...