<p>您应该在<strong>根文件夹(myappholder)中运行所有内容</p>
<p>您的目录结构如下:(当您在myappholder中时)</p>
<p>以更好的方式编写目录结构,如下所示:</p>
<pre class="lang-sh prettyprint-override"><code>.
├── myapp
│ ├── config.py
│ ├── __init__.py
│ ├── main.py
│ └── subdir
│ ├── helper.py
│ └── __init__.py
└── README.md
</code></pre>
<h2>长而全的解决方案</h2>
<p>了解python导入是如何工作的。你似乎不太清楚</p>
<p>阅读这篇详细而精彩的文章:<a href="https://realpython.com/python-import/" rel="noreferrer">https://realpython.com/python-import/</a></p>
<p>您需要学习的概念:</p>
<ul>
<li><a href="https://realpython.com/python-import/#absolute-and-relative-imports" rel="noreferrer">Absolute and Relative Imports</a></li>
<li><a href="https://realpython.com/python-import/#pythons-import-path" rel="noreferrer">Python’s Import Path</a></li>
<li><a href="https://docs.python.org/3/reference/import.html" rel="noreferrer">Official docs</a>了解python导入在内部的工作方式</li>
</ul>
<hr/>
<h2>用于测试应用程序的快速解决方案</h2>
<p>打开终端并运行<code>python</code>(从项目的根目录)</p>
<p>现在在这个交互式shell中,导入<code>myapp</code>并调用需要运行的函数</p>
<hr/>
<h2>公开cli</h2>
<p>如果需要公开CLI,可以打包应用程序,使用<a href="https://python-poetry.org/" rel="noreferrer">^{<cd3>}</a>或<a href="https://packaging.python.org/tutorials/packaging-projects/" rel="noreferrer">setuptools</a>非常好</p>
<p>您可以定义一个命令行界面</p>
<p>例如,如果您正在使用诗歌,可以将其放在pyproject.toml中</p>
<pre><code>[tool.poetry.scripts]
samplepy = 'samplepy:cli'
</code></pre>
<p>现在,从终端运行<code>samplepy</code>将执行<code>samplepy</code>包的<code>cli</code>函数</p>