我有两个项目,每个项目都有一个Python文件夹,其中我有另一个名为lib_py的文件夹,其中包含一些共享库Python文件。 请注意,即使lib_py是一组共享库,每个项目都可以具有较旧/较新版本的lib_py文件(基于其需要)。这就是为什么每个项目都需要拥有lib_py文件夹的原因。层次结构如下:
Project1
Python
lib_py
__init__.py
example.py
main
main.py
Project2
Python
lib_py
__init__.py
example.py
main
main.py
在两个项目的main.py中,example.py导入如下:
from lib_py.example import x
为了使每个main.py都能访问example.py,我在sys.paths中添加了两个以下路径:
D:\Project1\Python
D:\Project2\Python
问题发生在这里:来自Project1的main.py被调用,使用了良好的example.py但是在从Project1调用main.py之后,调用了Project2的main.py,再次调用了Project1中的example.py虽然我希望使用Project2中的example.py。
有没有办法确定哪个包应该使用哪个包含相同名称? 您认为还有其他解决方案吗? (不改变课程的目录层次结构)
由于
答案 0 :(得分:2)
你可以做这样的事情
from os import path
import sys
sys.path.append(path.abspath('../Foo'))
sys.path.append(path.abspath('../Foo2'))
from Project1.python.lib_py import example as proj1ex
from Project2.python.lib_py import example as proj2ex
答案 1 :(得分:1)
只需从项目级别提供路径,并使用其他名称将其别名
from project1.python.lib_py import example as ex1
from project2.python.lib_py import example as ex2
并开始使用ex1和ex2