我正在尝试从其他文件导入类,但它一直给我一个“ ModuleNotFoundError:没有名为'x'的模块”错误。
我正在尝试使自己成为一个可以为我做各种事情的小电报机器人。我在Windows上使用PyCharm进行编码。一切都在Windows上运行。但是,当我将代码复制到我的VPS之后,它会吐出“ ModuleNotFoundError”。我试图使用相对进口和绝对进口,但似乎都没有用。了解来自here的相对和绝对导入。
使用相对导入时,出现另一个错误,提示“ __main __。fileName”不是软件包,我觉得这是倒退。
我还认为我与此stackexchange post上的人有同样的问题。我按照那里的答案做了,并添加了一个空的“ init .py”文件,但是输出没有变化。然后我看到了,如果我错了,请纠正我,Python 3.3及之后的版本在每个子目录中都不需要一个空的 init .py文件。但是我仍然有他们。以防万一。
关于相同的问题,我已经经历了很多stackoverflow问题。但是我认为,这些答案都无法真正解决我的问题。
这是我的目录结构。
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<ul class="nav">
<li><a href="file1.php">solo page</a></li>
<li class="hassub">
<a href="#">submenu1 (mixed) ▼</a>
<ul class="nav-sub">
<li><a href="file2.php">page 1a</a></li>
<li><a href="file3.php">page 1b</a></li>
<li><a class="ajaxlink" href="#">ajax 1-1</a></li>
<li><a href="file2.php">page 1c</a></li>
<li><a href="file3.php">page 1d</a></li>
</ul>
</li>
<li class="hassub">
<a href="#">submenu2 (only pages) ▼</a>
<ul class="nav-sub">
<li><a href="file2.php">page 2a</a></li>
<li><a href="file3.php">page 2b</a></li>
</ul>
</li>
<li id="hassub3" class="hassub">
<a href="#">submenu3 (only ajax) ▼</a>
<ul id="sub3" class="nav-sub">
<li><a class="ajaxlink" href="#">ajax 3-1</a></li>
<li><a class="ajaxlink" href="#">ajax 3-2</a></li>
</ul>
</li>
</ul>
这是我遇到的错误。第十行是元凶。
baivrau-bot/
├── env.py
├── imgurDownloader
│ ├── __init__.py
│ ├── downloader.py
│ ├── main.py
│ ├── readme.md
│ └── test.py
├── readme.md
├── requirements.txt
这是main.py上的1-16行
Traceback (most recent call last):
File "main.py", line 10, in <module>
from imgurDownloader.downloader import ImgurAlbumDownloader
ModuleNotFoundError: No module named 'imgurDownloader'
文件“下载器”来自Github repo。
我在Windows计算机上使用了PyCharm,它完全可以正常工作。在Ubuntu或任何Linux发行版上运行时,我除外。
答案 0 :(得分:0)
您可能没有从同一文件夹访问main.py
。检查您的工作目录。您正在使用哪个版本的PyCharm?您可以从终端运行它吗?另外,您是否尝试删除目录前缀,所以它只是from downloader import ImgurAlbumDownloader
?
我的最后提示是遵循常规项目结构,其中测试位于不同的文件夹中:What is the best project structure for a Python application?
答案 1 :(得分:0)
像您这样的声音没有在您应该搜索软件包的位置设置PYTHONPATH变量。
对于单个测试,请在您的cmd中尝试:
export PYTHONPATH="$/pwd/path_to_dir"
在您启动脚本之前。但是您绝对应该永久设置此变量。