PYTHONPATH地狱与重叠的包结构

Windows XP上的PythonPath出现问题,我想知道自己是否做错了什么.

假设我有一个使用pyrc创建的项目(使用Pydev创建).在src下,我有一个名为common的程序包,并且在其中有一个名为service.py的类,其类名为Service

现在说,我有另一个项目(也是用Pydev创建的),带有src目录和一个公共包.在通用包中,我只有一个脚本client.py,可以导入服务.

因此,换句话说,两个单独的磁盘位置,但是相同的软件包.

我注意到,即使我将PYTHONPATH设置为包括两个src目录,除非文件都位于同一目录中,否则导入将失败.我得到了可怕的找不到模块.

我是否误解了python如何解析模块名称?我已经习惯了Java及其类路径.

解决方法:

如果确实需要这样的拆分包,请阅读模块级别的属性__path__.

简而言之,将其中一个“ src”目录设为主目录,然后给它一个__init__.py,它将其他“ src”的路径附加到__path__列表中.现在,在查找“ src”的子模块时,Python会在两个地方查找.

我真的不建议长期这样做.如果四处移动,它会很脆弱并且会破裂.

上一篇:关于微软RDLC报表打印时文字拉伸问题(Windows server 2003 sp2)


下一篇:无法在PyCharm中设置PYTHONPATH