微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将python src文件夹重命名为pypi包的项目名称?

如何解决如何将python src文件夹重命名为pypi包的项目名称?

考虑以下文件夹结构:

My_Project
|- src
|  |- firstmod
|  |  |- __init__.py
|  |  |- foo.py
|  |- __init__.py
|  |- bar.py
|- __init__.py
|- setup.py

bar.py 使用 firstmod.foo 作为导入。例如:

#bar.py
from firstmod import foo
....

目标是将 My_Project 打包为 pypi 包并能够像这样导入它

from my_project import bar

我为 setup.py 尝试了几个配置。第一个版本:

#setup.py 1st version
import setuptools

setuptools.setup(
    ....
    packages = setuptools.find_packages(where="src"),package_dir={'': 'src'},....
)

第二个版本:

#setup.py 2nd version
import setuptools

setuptools.setup(
    ....
    packages = [f'my_project.{elem}' for elem in setuptools.find_packages(where="src")],package_dir={'my_project': 'src'},....
)

在第一个版本中,我可以导入 bar,但必须在软件包安装后从 src 导入它,如 from src import bar

在第二个版本中,我无法像 bar 一样导入 from my_project import bar,因为我收到了像 ModuleNotFoundError: No module named 'firstmod' 一样的导入错误

我经历了这个 question,但这里所有好的答案都建议更改项目文件夹结构。我不想更改我的项目文件夹结构,因为它非常大。

请帮忙。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。