Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Setup.py以不同的顶级名称安装程序包_Python 3.x_Setuptools_Python Packaging - Fatal编程技术网

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.*
。这是事实。据我所知,现在已经没有办法了。