2013-12-23 44 views
2

我在理解如何爲我的項目管理這些代碼時遇到了一些麻煩。由於python中的導入工作方式,我很難爲我的所有類提供一個git回購。混合蟒蛇進口與GIT回購?

的目錄結構是這樣的:

(ASSIGNMENT 3 GIT REPO) 
    Project/ 
     Client/ 
      Main.py 
      ClientHandler.py 
      ClientSoundManager.py 
     Server/ 
      Main.py 
      ServerHandle.py 
      ServerUtil.py 
     Shared/ 
      MathProcessor.py 
      DrawHandler.py 
      SoundProcessor.py 

我有一個Git項目 - 「分配3。」在Python中,我無法在ServerHandle.py中導入MathProcessor,對於ClientHandler.py也是如此。我的另一種選擇是爲每個創建單獨的存儲庫...並使它看起來像這樣 -

(ASSIGNMENT 3 GIT REPO) 
Project/ 
    Client/ 
     Shared/ (SHARED GIT REPO) 
      MathProcessor.py 
      DrawHandler.py 
      SoundProcessor.py 
     Main.py 
     CLientHandler.py 
     ClientSoundManager.py 
    Server/ 
     Shared/ (SHARED GIT REPO) 
      MathProcessor.py 
      DrawHandler.py 
      SoundProcessor.py 
     Main.py 
     ServerHandle.py 
     ServerUtil.py 

如果我這樣做,那麼我將有一個GIT回購內部的GIT回購...什麼是管理這個項目的正確方式,所以python的導入不必被黑客入侵?

+0

*在Python中我不能導入ServerHandle.py MathProcessor,和同爲ClientHandler.py * - 這是爲什麼?你遇到了什麼錯誤?如何做import/ – MattDMo

+0

在ServerHandle.py中,如果我這樣做「從..共享導入MathProcessor」我得到「試圖相對導入非包」 – user791953

+0

這是因爲你的目錄都不是軟件包。 –

回答

3

這與git無關。您只需要/path/to/wherever/you/cloned/Project您的sys.path並添加必需品__init__.pyProject/Client,Project/ServerProject/Shared中的文件以製作Python軟件包。

,可以找到關於進口,sys.path中和包這裏最相關的相關信息:http://docs.python.org/2/tutorial/modules.html

+0

這裏的一些問題是如何將它添加到PATH中是一個可怕的想法? – user791953

+0

這取決於你如何以及在哪裏做。在庫代碼中操作'sys.path'通常不是一個壞主意。在某些腳本中有時需要使用它(例如,在使用virtualenv的mod_wsgi腳本中)。添加到你的'PYTHON_PATH' env變量通常是可以的。 –