python 安装工具 - 从项目中安装子包
python setup tools - install a sub package from within a project
我有两个具有以下结构的项目(trysetup1 和 trysetup2):
我想 pip 安装 package1 并使用项目 trysetup2 中的模块 1
我的 setup.py 在 package1 下看起来像这样:
import setuptools
setuptools.setup(
name="common",
version="1.0.2",
packages=setuptools.find_packages(),
)
我想使用module1的方式是这样的from package1.module1 import ClassOne
因为我还需要从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 param 它分发 package1 包然后如果你去:
/..../venv/lib/python3.8/site-packages/common-1.0.2-py3.8.egg-info/top_level.txt
您将看到以下内容:
我有两个具有以下结构的项目(trysetup1 和 trysetup2):
我想 pip 安装 package1 并使用项目 trysetup2 中的模块 1
我的 setup.py 在 package1 下看起来像这样:
import setuptools
setuptools.setup(
name="common",
version="1.0.2",
packages=setuptools.find_packages(),
)
我想使用module1的方式是这样的from package1.module1 import ClassOne
因为我还需要从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 param 它分发 package1 包然后如果你去:
/..../venv/lib/python3.8/site-packages/common-1.0.2-py3.8.egg-info/top_level.txt
您将看到以下内容: