为什么我无法导入load_dotenv?

Roc*_*tar 20 python discord.py

我正在尝试用 python 编写一个简单的不和谐机器人,但它说我无法导入 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)
Run Code Online (Sandbox Code Playgroud)

作为参考,这是我当前的代码:https ://pastebin.com/75qru00R

小智 17

刚刚遇到了同样的问题,幸运的是我们已经解决了。

问题出在包本身。因此,您应该安装python-dotenv ,而不是安装包dotenv

pip install python-dotenv
Run Code Online (Sandbox Code Playgroud)

之后,您的代码就可以工作了

  • 只是为了增加混乱......它是“python-dotenv”而不是“dotenv-python” (2认同)

小智 5

由于load_dotenv是在包中声明的main.py,我只需导入它并使用类似的函数就可以了。

from dotenv import main
import os

main.load_dotenv()

print(os.getenv('access_token'))
Run Code Online (Sandbox Code Playgroud)


小智 5

就我而言:我首先通过以下推荐卸载了 dotenv-python 和 dotenv

pip uninstall dotenv-python
pip uninstall dotenv
Run Code Online (Sandbox Code Playgroud)

安装 python-dotenv 模块后

pip install python-dotenv
Run Code Online (Sandbox Code Playgroud)


shi*_*492 0

根据https://github.com/pedroburon/dotenv的官方文档,您导入Dotenv而不是load_dotenv

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

Run Code Online (Sandbox Code Playgroud)