Python 3.x Setup.py以不同的顶级名称安装程序包
我有一个项目,例如:Python 3.x Setup.py以不同的顶级名称安装程序包,python-3.x,setuptools,python-packaging,Python 3.x,Setuptools,Python Packaging,我有一个项目,例如: myproject setup.py -myproject -package1 -package2 我将setup.py用作: NAME='myproject' setup( name=NAME, version=VERSION, description=DESCRIPTION, long_description=long_description, long_description_con
myproject
setup.py
-myproject
-package1
-package2
我将setup.py用作:
NAME='myproject'
setup(
name=NAME,
version=VERSION,
description=DESCRIPTION,
long_description=long_description,
long_description_content_type='text/markdown',
author=AUTHOR,
author_email=EMAIL,
python_requires=REQUIRES_PYTHON,
url=URL,
packages=find_packages(exclude=('tests',)),
package_data={NAME: ['VERSION']},
install_requires=require(),
extras_require={},
include_package_data=True)
当我安装(pip install-e.
)时,我可以通过import myproject.package1
访问包。但是,我想更改它,因此我将其导入为import mynewname.package1
。在上面的示例中,当更改NAME=mynewname
然后安装时,软件包将不再可见,import mynewname
给出ModuleNotFoundError
我不想更改项目或结构的名称,只想更改安装包的顶级名称。类似于导入mynewname.myproject.package1这样的东西也可以工作,但我不确定如何做到这一点
谢谢应该很简单,只要将目录
myproject/myproject
重命名为myproject/mynewname
。我不想重命名项目中的任何内容,这是一个棘手的部分。我只是想创建一些安装包装器之类的东西。问题是实际上myproject的名称非常通用,在安装它时,我希望使用更具体的名称进行安装。使用package\u dir
这样,您就可以为源代码中的目录和实际可导入的包使用不同的名称(即,在构建过程中重命名目录)。示例:---好吧,那么我想,您需要package_dir={'mynewname':'myproject'}
。但我相信您还必须修改包的列表,因为查找包
仍将返回未转换的包名,例如myproject.*
。这是事实。据我所知,现在已经没有办法了。