<p>另见<a href="https://stackoverflow.com/q/58375315/11138259">Create editable package setup.py in the same root folder as __init__.py</a></p>
<p>据我所知,这应该是可行的:</p>
<pre><code>myproject-dev/
├── __init__.py
├── setup.py
└── submodule
└── __init__.py
</code></pre>
<pre><code>#!/usr/bin/env python3
import setuptools
setuptools.setup(
name='MyProject',
version='0.0.0.dev0',
packages=['myproject', 'myproject.submodule'],
package_dir={
'myproject': '.',
},
)
</code></pre>
<hr/>
<p><strong>更新</strong></p>
<p>对于<em>可编辑</em>或<em>开发</em>安装,一种方法是手动修改<code>easy-install.pth</code>文件</p>
<p>假设:</p>
<ul>
<li>该项目位于:<code>/home/user/workspace/empty/project</code></李>
<li>使用虚拟环境<code>.venv</code></李>
<li>该项目安装有<code>python3 -m pip install -e .</code>或<code>python3 setup.py develop</code></李>
<li>Python版本是3.6</李>
</ul>
<p>然后:</p>
<ul>
<li>该文件位于<code>/home/user/workspace/empty/project/.venv/lib/python3.6/site-packages/easy-install.pth</code>等位置</李>
<li>它的内容是:<code>/home/user/workspace/empty/project</code></李>
</ul>
<p>为了让导入按预期工作,可以编辑此行以阅读以下内容:</p>
<ul>
<li><code>/home/user/workspace/empty</code></li>
</ul>
<p>注:</p>
<ul>
<li>在<code>/home/user/workspace/empty</code>中,所有看起来像Python包的东西都很容易被导入,这就是为什么最好将项目放在它自己的目录中,在本例中,目录<code>empty</code>只包含目录<code>project</code></李>
<li>模块<code>project.setup</code>也是可导入的</李>
</ul>