2013-05-16 5 views
0

Я очень новичок в Python, но хочу запустить скрипт с сервера. Итак, у меня есть следующая структураПечать не работает после импорта в Python

project 
-A1 
--A1.py 
--A2.py 
-B1 
--B1.py 
--B2.py 
-test.py 

Также есть __init__.py в каждом подкаталоге

В test.py У меня есть простой код

#!/usr/bin/python 
print "Content-type: text/html\n\n" 
print 'A' 
from project import * 
print 'B' 

Но B не отображается на странице. Возможно, я что-то не так с импортом?

Обратите внимание, что я скопировал файлы вместо их установки. Может быть, это и есть причина? Может быть, я должен добавить что-то в системный путь? Я не хочу устанавливать, потому что в будущем мне нужно будет изменить эти файлы.

Возможно, проблема связана с прохождением файлов. У меня было 644 и было изменено до 755, но это не помогает.

Заранее спасибо.

+3

Не зная, что находится в «проекте», трудно сказать наверняка, но, скорее всего, я могу подумать, что где-то в «проектном» модуле кто-то перенаправлял stdout. Можете ли вы поделиться источником для этого? – mattbornski

+0

Это на самом деле симплекс (библиотека для математики). Насколько я знаю, есть только функции. Кстати. все работает на localhost. –

+0

Если я правильно его читаю, test.py находится в каталоге проекта? Как «из импорта проекта» не генерирует ошибку импорта? Вы хотите что-то вроде импорта A1 import B1 – Andenthal

ответ

1

Поскольку ваш сценарий не завершен успешно (он вызывает исключение, поскольку sympy не установлен), вы не видите никакого вывода в браузере, потому что запрос не завершен.

Если вы хотите проверить журналы ошибок своего сервера, вы увидите записи, отражающие это.

Чтобы устранить проблему, установите sympy - тогда убедитесь, что ваш скрипт работает без ошибок из командной строки и только затем получает к нему доступ из браузера.

+0

Могу ли я сделать это без установки? –

+0

Вам не нужно устанавливать его на весь сервер, вы можете установить его только для своей учетной записи, используя [виртуальную среду] (http://virtualenv.org). Если вы не можете установить какие-либо пакеты, вам необходимо удалить строку импорта, чтобы ваш файл работал. –

+0

Итак, просто чтобы удалить все импорт из всех файлов? –

0

Проверьте sys.stdout до и после импорта. Кроме того, попробуйте позвонить sys.stdout.flush() после второй строки печати.

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