问题描述
我有两个具有以下结构的项目(trysetup1和trysetup2):
我想从项目trysetup2中pip安装package1并使用module1
我的setup.py在package1下看起来像这样:
select
t.place,t.year,t.animal,t.plus,prev_year.plus as hello
from mytable t
left join mytable prev_year on prev_year.animal = t.animal
and prev_year.year = t.year - 1
order by t.year,t.animal;
我想使用module1的方式就像这样import setuptools
setuptools.setup(
name="common",version="1.0.2",packages=setuptools.find_packages(),)
,因为我仍然需要从package2中使用它
当尝试从module2导入时,效果很好
但是当尝试从module3中使用它时(在pip安装之后在另一个项目中)我遇到“ 未解决的引用'package1'”问题
我知道我可以通过将module1放在package1下的另一个包中来使用它,但是我需要这种确切的结构以便从项目'trysetup1'的其余部分中使用它
谢谢!
解决方法
在这里找到我的答案
https://docs.python.org/3/distutils/examples.html
实际上,我要做的就是将setup.py文件更改为如下形式:
setuptools.setup(
name="common",version="1.0.2",package_dir={'package1': ''},packages=['package1'],)
通过添加 package_dir 参数,设置功能告诉我根目录(package1)下的所有文件都在package1目录下,并通过添加 packages 参数来分发 package1 包,然后转到:
/..../ venv / lib / python3.8 / site-packages / common-1.0.2-py3.8.egg-info / top_level.txt
您将看到以下内容: