2015-06-12 3 views
3

Я работаю над простым webapp из Head First Python. Я использую ubuntu 14.04. Но это ошибка:Файл не найден Ошибка, но файл существует

Traceback (most recent call last): 
    File "/usr/lib/python3.4/http/server.py", line 1143, in run_cgi 
    os.execve(scriptfile, args, env) 
FileNotFoundError: [Errno 2] No such file or directory: 
'/home/sarthak/Desktop/Learn/HeadFirstPython/chapter7/webapp/cgi-bin/generate_list.py' 

127.0.0.1 - - [12/Jun/2015 07:08:25] CGI script exit status 0x7f00 

Файл, безусловно, существует в системе и является исполняемым.

Как исправить проблему?

+2

Показать код ошибки, в которой эта ошибка возникает. Это поможет выяснить проблему – Andy

+0

Во-первых, это 'scriptfile' также первая запись в' args'? – abarnert

+1

Во-вторых, вы действительно не должны быть 'exec'-ing скриптом; если это еще один скрипт Python, вы должны быть 'exec'ing' sys.executable' со сценарием как 'args [1]'. Бывший _may_ работает с Linux, в зависимости от того, как настроены все, но может и не быть (и он может также давать разные ошибки, чем вы ожидали бы, когда это не так). И я не знаю, что такое настройка по умолчанию для Ubuntu 14.04. Или вы находитесь в тюрьме с chroot или что. Если вам не нужно убедиться, что он запущен процессором '#!' Вместо Python, в этом случае, неважно; 'execve' скрипт напрямую .. – abarnert

ответ

1

Проблема заключается в «неправильном» пути линии shebang (первая строка, которая сообщает #!/usr/local/bin/python3) файла generate_list.py.

Если вы используете ubuntu, то расположение python3 возможно /usr/bin/python3 (вы можете узнать свое местоположение python3, введя which python3 в оболочку/терминал). Поэтому вам нужно настроить первую строку на фактический адрес python3, чтобы заставить ваш скрипт работать.

Смежные вопросы