项目设置如下所示:
---------------------
root
FrameworkPackage1
__init__.py
sourcefile1.py
FrameworkPackage2
__init__.py
sourcefile2.py
apps
Project
src
MyApp
__init__.py
__main__.py
setup.py
README.md
---------------------
当我创建setup.py时,据我所知,我使用package\u dir设置这些包的位置
---------------------
packages=['MyApp', 'FrameworkPackage1', 'FrameworkPackage2'],
package_dir={'': 'src',
'FrameworkPackage1': '../../FrameworkPackage1',
'FrameworkPackage2': '../../FrameworkPackage2'}
---------------------
因此,这将正确地构建包含所有必需文件的包。但是,当我尝试安装时,它失败了,如果我只是尝试卸载包文件,它会将FrameworkPackage1/2放入解压所在的“../....”目录中
理想情况下,我希望软件包按如下方式工作,并从pip安装,以便运行以下程序:
import MyApp as ma
import FrameworkPackage1 as fp1
import FrameworkPackage2 as fp2
print(ma.Function())
print(fp1.OtherFunction())
print(fp2.OtherFunction())
是否有办法将框架设置为在“../../../”中找到,但安装到发行版的根目录中
首先,正如@a_guest所建议的那样,
package_dir
不应该是这样吗或者,您可以尝试将
__init__.py
添加到root
文件夹中,以便将其识别为python文件夹(基于this question)其次,您可以:
requirements.txt
(或等价物)中,将它们添加到MyApp
。这其中的一个缺点是每个都有自己的setup.py,但这是一个much better packaging practice李>setup.py
直接放在主文件夹(package_dir={'': 'src', 'FrameworkPackage1': 'src', 'FrameworkPackage2': 'src'}
中,结构如下所示:相关问题 更多 >
编程相关推荐