Python 在conda/pip中安装单个文件包需要冗余的导入语句
我已经创建了一个发布到pypi.org的python包。包由单个.py文件组成,该文件与包同名 在conda或标准python环境中通过pip(Python 在conda/pip中安装单个文件包需要冗余的导入语句,python,pip,python-import,conda,python-packaging,Python,Pip,Python Import,Conda,Python Packaging,我已经创建了一个发布到pypi.org的python包。包由单个.py文件组成,该文件与包同名 在conda或标准python环境中通过pip(pip install package_name)安装包后,我必须使用以下语句从此模块导入函数: from package_name.package_name import function_x 如何重新组织包或调整安装命令,以便使用导入语句 from package_name import function_x 我通过python setup.py
pip install package_name
)安装包后,我必须使用以下语句从此模块导入函数:
from package_name.package_name import function_x
如何重新组织包或调整安装命令,以便使用导入语句
from package_name import function_x
我通过python setup.py install
安装时成功使用了它
下面是我的setup.py
setup(
name = "package_name",
version = "...",
packages=find_packages(exclude=['examples', 'docs', 'build', 'dist']),
)
将设置参数从使用包更改为使用py_模块,例如
setup(
name = "package_name",
version = "..",
py_modules=['package_name'],
)
这里记录了这一点您显然要求
setuptools
构建包含模块的软件包,而不仅仅是安装模块。如果您没有明确地执行此操作,可能是因为您正在使用find_packages
搜索整个源代码树并查找所有包。如果您只有一个文件,那么不使用它可能比让它作为一个平面模块查找您的模块更容易。我唯一能想到的另一种可能性是,您有一个包名
目录,其中包含一个\u init\u.py
和一个名为包名.py
.py的模块文件,\uuuu init\uuuuuuuuuuuuuuupy
正在尝试从模块导入和重新导出所有内容,但不知何故,您得到了设置工具
,要么忽略\uuuuuuuuuuuuuuuuuupy
要么替换它。但这似乎不太可能是你的问题。谢谢@abarnert。这是因为我在设置参数中使用的是包而不是py_模块!