2013-12-23 57 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变量通常是可以的。 –