2009-09-24 63 views
0

我一直遇到這個問題......請記住,我對Django和一位總的Python業餘愛好者來說是相當新穎的。將模塊複製到Django中,「沒有名爲[moduleName]的模塊」

看來,例如,每當我經過一個乾淨的安裝Python和Django的的檢查了我的Django項目在新計算機上,它永遠不能找到項目/應用程序創建或複製。

所以現在我有一個正在工作的應用程序,我下載了一個第三方Django模塊並將其安裝到我的應用程序目錄中,將其包含在我的設置中,並且因爲無法找到該模塊而退出Web服務器。

這是我第一次導入第三方模塊。在過去,當它找不到我創建的模塊時,我只需重命名文件夾並運行「manage.py startapp appname」,刪除它創建的文件夾,然後命名我的原始文件夾,繁榮,問題解決...

但是,這顯然是一個黑客攻擊,我想知道是否有人可以解釋這是怎麼回事,以及如何最好地解決它。

我不能成爲唯一一個遇到過這個問題的人,但我在這個網站上找不到任何其他問題似乎與我的問題相符。

發生在OS X和Windows 7的

回答

0

你的第三方Django的模塊應該由PYTHONPATH可搜索的,因爲Django的模塊是不超過一個Python模塊等。現在有兩種方法可以做到這一點:

  1. 創建一個文件夾(任何你想要的),把你的第三方django模塊放在那裏。現在設置該目錄到環境變量$ PYTHONPATH 例如(在Linux中):

    出口PYTHONPATH = /家庭/ ME/pythonmodules/

  2. 創建一個文件夾(任何你想要的),把第三方的Django模塊在那裏。現在如果你在Unix上,創建一個symlink到那個目錄到python site-packages。使用此命令找出你的python軟件包是:

    蟒蛇-c 「從distutils.sysconfig進口get_python_lib;打印get_python_lib()」

+0

將符號鏈接稱爲OSX中的「別名」? – 2009-09-24 14:21:51

+0

OSX中還有一個用於創建符號鏈接的ln命令。 – 2009-09-24 20:49:07

2

他們的方式Django的工作是相當多的Python是如何工作的。在默認情況下,當您運行django-admin.py startproject名稱時創建的文件夾將添加到您的python路徑中。這意味着你可以進入的任何東西。但是當你將應用程序寫入已安裝的應用程序列表時,你必須介意。如果您在project/apps/appname上有應用程序,則必須在安裝的應用程序列表中編寫'app.appname'

現在有一些方法可以在您的項目中添加位於其他位置的第三方應用程序。您可以將它們添加到您的Python路徑,放入您的Python路徑,或者鏈接到您的Python路徑。但是,您還可以在manage.py文件中添加一個sys.path.insert(...),在該文件中將您喜歡的文件夾添加到Python路徑中。這樣做可以讓你只將文件夾添加到你的Python路徑中,並且保持你的python路徑更加乾淨。

+0

這似乎是正確的方向。我/用戶/我/桌面/應用/ 裏面的/應用/我有 /mainApp /和/ thirdPartyApp/ 我嘗試添加這兩種/用戶/我/桌面/應用/用戶和//ME/desktop/apps/thirdPartyApp /到manage.py指令,都沒有任何影響。我也檢查了我安裝的應用程序的語法,並嘗試了thirdPartyApp.submodulename和apps.thirdPartyApp.submodulename 並且這些都沒有任何效果... OS X可能是愚蠢的,我今晚會在Windows上嘗試它。 – 2009-09-24 15:49:38

相關問題