Python中文
首页
教程
问答
标签
搜索
登录
注册
python名称空间与包:使包成为默认名称p
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有一个具有全局命名空间的项目,其中包含包。以下是文件夹结构:</p> <pre><code>pypackage ├── pypackage <-- Source code for use in this project. | | │ ├── bin <-- Module: Cli entry point into pyproject. | | ├── __init__.py | | └── pypackage.py | | | └── core <-- Module: Core functionality. | ├── __init__.py | └── pypackage.py | ├── tests ├── README.md └── setup.py </code></pre> <p>很简单。如果我想导入它,我使用:</p> ^{pr2}$ <p>因为我的设置.py看起来像这样:</p> <pre><code>from setuptools import setup, find_packages ... NAME = 'pypackage' setup( name=NAME, namespace_packages=[NAME], packages=[f'{NAME}.{p}' for p in find_packages(where=NAME)], entry_points={ "console_scripts": [ f'{NAME} = {NAME}.bin.{NAME}:cli', ] }, ... ) </code></pre> <p>但是,我有一些旧代码,当它以前只是一个独立的python文件时,它会导入这个<code>pypackage</code>。像这样:</p> <pre><code>import pypackage </code></pre> <p>那么,如何使它保持与名称空间和子包相同的结构,但仍然以旧的方式导入它呢?我该怎么转这个:</p> ^{pr2}$ <p>在这方面:</p> <pre><code>import pypackage </code></pre> <p>换句话说,当我将<code>pypackage</code>导入外部项目时,如何将<code>pypackage.core.pypackage</code>模块命名为<code>pypackage</code>?</strong></p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>如果我使用包,martinpieters的想法是正确的,但是名称空间包是setuptools的东西。在</p> <p>所以那没用。经过更多的研究,我明白了做我想做的事是不可能的。所以如果我真的想这么做,我必须把所有的东西都转换成一个常规的包层次结构,而不是命名空间包,然后使用martin的解决方案。在</p> <p>我决定修改遗留代码,以新的方式导入它。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
plt.savefig不会覆盖现有文件
7 回答
plt.savefig不保存图像
8 回答
plt.savefig在jupyter笔记本中不起作用
8 回答
plt.savefig在从另一个fi调用时停止工作
5 回答
plt.savefig在调用plt.show之前保存空数字
5 回答
plt.save不创建png文件
4 回答
plt.scatter overlay分类数据帧列
5 回答
Plt.Scatter:如何添加title、xlabel和ylab
5 回答
plt.scatter()绘图与Matplotlib中的plt.plot()绘图类似
2 回答
plt.scatter错误'NoneType'对象在成功运行后没有属性'sqrt'
7 回答
plt.set_title()中的标题字符串有误
9 回答
plt.show()
7 回答
plt.show()不在Jupyter笔记本上渲染任何内容
4 回答
plt.show()不打印plt.plot only plt.scatter
5 回答
plt.show()不显示三维散射图像
9 回答
plt.show()不显示任何内容
10 回答
plt.show()不显示数据,而是保留它供下一个图表使用(spyder)
4 回答
plt.show()使终端挂起
4 回答
plt.show()无法使用此代码
4 回答
plt.show()没有打开新的图形风
8 回答