首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从x导入y可以在Windows上运行,但不能在Ubuntu上运行

从x导入y可以在Windows上运行,但不能在Ubuntu上运行
EN

Stack Overflow用户
提问于 2019-05-09 02:32:29
回答 2查看 319关注 0票数 2

我试图从一个不同的文件导入一个类,但它一直给我一个"ModuleNotFoundError: No module named 'x'“错误。

我正在试着让自己成为一个小小的Telegram机器人,它可以为我做各种事情。我正在使用Windows上的PyCharm进行编码。一切都可以在Windows上运行。但在我将代码复制到我的VPS后,它显示出"ModuleNotFoundError“。我尝试过使用相对导入和绝对导入,但它们似乎都不起作用。阅读有关从here进行相对和绝对导入的信息。

当使用相对导入时,我得到一个不同的错误,说“__main __.fileName”不是一个包,我觉得这是一种倒退。

我也认为我和这个stackexchange post上的人有同样的问题。我按照答案所说的做了,并添加了一个空的"init.py“文件,但我没有对输出进行任何更改。然后我发现,如果我错了,请纠正我,Python3.3和之后的版本不需要在每个子目录中都有一个空的初始化.py文件。但我还留着它们。以防万一。

我已经在同样的问题上提出了一堆堆栈溢出的问题。但在我看来,这些答案都不是我问题的真正解决方案。

这是我现在的目录结构。

baivrau-bot/
├── env.py
├── imgurDownloader
│   ├── __init__.py
│   ├── downloader.py
│   ├── main.py
│   ├── readme.md
│   └── test.py
├── readme.md
├── requirements.txt

这是我得到的错误。第10行是罪魁祸首。

Traceback (most recent call last):
  File "main.py", line 10, in <module>
    from imgurDownloader.downloader import ImgurAlbumDownloader
ModuleNotFoundError: No module named 'imgurDownloader'

下面是main.py上的第1-16行

import telepot
from telepot.namedtuple import InputMediaPhoto
import glob
import os
import re
import time
import sys
import shutil
from hashlib import md5
from imgurDownloader.downloader import ImgurAlbumDownloader
from env import bot_token

chat_id = sys.argv[1]
imgur_link = sys.argv[2]

bot = telepot.Bot(bot_token)

文件“downloader”来自Github repo

我在我的视窗电脑上使用了PyCharm,它工作得很好。我希望在Ubuntu或任何linux发行版上运行时都是一样的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-09 03:29:28

听起来您没有将PYTHONPATH变量设置在他应该搜索您的包的位置。

对于命令行中的单个测试,请尝试:

export PYTHONPATH="$/pwd/path_to_dir"

在开始你的脚本之前。但是你绝对应该永久地设置这个变量。

票数 1
EN

Stack Overflow用户

发布于 2019-05-09 03:01:04

您可能不是从同一文件夹访问main.py。检查您的工作目录。您使用的是什么版本的PyCharm?你能从终端运行它吗?另外,您是否尝试删除目录前缀,使其仅为from downloader import ImgurAlbumDownloader

我的最后一个技巧是遵循传统的项目结构,其中测试位于不同的文件夹中:What is the best project structure for a Python application?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56047036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档