Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么我不能导入load_dotenv?_Python_Discord.py - Fatal编程技术网

Python 为什么我不能导入load_dotenv?

Python 为什么我不能导入load_dotenv?,python,discord.py,Python,Discord.py,我试图用python编写一个简单的discord bot,但它说我无法导入load_dotenv,而是给了我以下错误: Traceback (most recent call last): File "/home/pi/Rotomi/Rotomi.py", line 5, in <module> from dotenv import load_dotenv ImportError: cannot import name 'load_dotenv' from 'dotenv

我试图用python编写一个简单的discord bot,但它说我无法导入load_dotenv,而是给了我以下错误:

Traceback (most recent call last):
  File "/home/pi/Rotomi/Rotomi.py", line 5, in <module>
    from dotenv import load_dotenv
ImportError: cannot import name 'load_dotenv' from 'dotenv' (/home/pi/.local/lib/python3.7/site-packages/dotenv/__init__.py)
回溯(最近一次呼叫最后一次):
文件“/home/pi/Rotomi/Rotomi.py”,第5行,在
从dotenv导入加载\u dotenv
导入错误:无法从“dotenv”导入名称“load\u dotenv”(/home/pi/.local/lib/python3.7/site packages/dotenv/\uu init\uuu.py)

以下是我当前的代码供参考:

欢迎使用StackOverflow

希望这个答案对你有帮助。在Python中,每当解释器无法在其站点包中找到请求模块时,就会发生导入错误。通常,出现此错误的原因如下

  • 模块未安装。所有外部软件包都需要使用
    pip
    conda
    安装,如果使用anaconda软件包分发
  • 模块未安装到不正确的Python路径。在Macbook或Unix系统中,有时会安装两种不同版本的python(Python2、Python3等)
  • 软件包已更新或过时。在这种情况下,可以重新编写某些模块。应该使用强制安装来匹配您的参考示例。(我不推荐,但取决于您的用例)
  • 例如:

    pip install MYPACKAGE_NAME==1.2.3
    
  • 加载包名称时出现拼写错误

  • 根据这些官方文件, 您可以导入Dotenv而不是加载\u Dotenv

    >>> from dotenv import Dotenv
    >>> dotenv = Dotenv('/path/to/.env')
    >>> print dotenv
    {"FOO": "bar", "Bar": "baz"}
    
    

    我来到这里是因为我面临同样的问题。我的代码是根据

    导致此错误的原因:

    Traceback (most recent call last):
      File "/home/pi/Rotomi/Rotomi.py", line 5, in <module>
        from dotenv import load_dotenv
    ImportError: cannot import name 'load_dotenv' from 'dotenv' (/home/pi/.local/lib/python3.7/site-packages/dotenv/__init__.py)
    
    ***导入错误:无法从“dotenv”导入名称“load_dotenv”(/usr/local/lib/python3.7/site packages/dotenv.py)

    进口本身起了作用:

    (Pdb) import dotenv
    
    但该建议没有:

    (Pdb) from dotenv import Dotenv
    *** ImportError: cannot import name 'Dotenv' from 'dotenv' (/usr/local/lib/python3.7/site-packages/dotenv.py)
    
    显然,在我的例子中,我还必须完成另一个安装:
    pip3.7安装python dotenv--user
    。 但是,
    从dotenv导入dotenv
    将不会运行。本教程正确地说明了:

    from dotenv import load_dotenv
    

    我认为这可能是Python 2/3转换错误。

    我不知道这是否还需要解决,但我发现这对我来说很有效:

    from dotenv import dotenv_values
    temp = dotenv_values(".env")
    TOKEN = temp["DISCORD_TOKEN"] 
    

    如果以后不使用它,为什么还要导入它?有两个模块
    pip install dotenv
    pip install python dotenv
    (它们具有
    load\u dotenv
    )。也许你安装了错误的模块啊,可能就是这样。非常感谢。这里有
    dotenv
    dotenv-python
    python-dotenv
    (以及其他一些)。已加载\u dotenv@furas yeesh。。。这一系列听起来已经成熟,可以进行排版攻击了。