2013-05-16 88 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

不知道「項目」中的內容很難說清楚,但我能想到的最可能的可能性是「項目」模塊中的某個人重定向了標準輸出。你可以分享源代碼嗎? – mattbornski

+0

它實際上是sympy(數學庫)。據我所知,只有功能。順便一提。一切工作在本地主機上。 –

+0

如果我正確閱讀,test.py是在項目目錄中? '來自項目導入*'不會產生導入錯誤?你想要的東西像導入A1導入B1 – Andenthal

回答

1

由於您的腳本沒有成功完成,(因爲sympy未安裝,所以會引發異常),您在瀏覽器中看不到任何輸出,因爲請求沒有完成。

如果您要檢查服務器的錯誤日誌,您會看到反映此問題的條目。

要解決該問題,請安裝sympy - 然後確保您的腳本在命令行中運行時沒有錯誤,然後才能從瀏覽器訪問它。

+0

我可以不用安裝嗎? –

+0

您不必爲整個服務器安裝它,只能通過使用[虛擬環境](http://virtualenv.org)爲您的帳戶安裝它。如果您無法安裝任何軟件包,則需要刪除導入行才能使您的文件正常工作。 –

+0

那麼,只是要刪除所有文件的所有導入? –

0

檢查sys.stdout導入前後。 另外,請嘗試在第二行打印後打電話sys.stdout.flush()