Python-我的软件包名称和已安装的软件包名称之间存在冲突

时间:2019-03-25 16:17:31

标签: python

我正在尝试调用jwt.encode的{​​{1}}函数,但它可能与我的软件包PyJWT冲突,因此出现错误jwt

  • 我正在运行一个虚拟环境。
  • Python版本3.6.7
  • 根据Python版本3.x中的答案here,这应该不是问题。

我的应用程序结构如下

AttributeError("module 'jwt' has no attribute 'encode'")

我在跑步时收到错误消息

jwt |-- __init__.py |-- db.py instance |-- jwt.sqlite tests |-- __init__.py |-- conftest.py |-- test_encodetoken.py

我在(venv) ~$ pytest文件夹中放了一个空__init__.py,因为否则找不到我的tests软件包。

下面是调用jwt内的jwt.encode的函数

db.py

1 个答案:

答案 0 :(得分:1)

修复:重命名目录jwt

原因:由于您的代码位于PYTHONPATH中库代码的前面,因此您看到的是代码,而不是jwt中的PyJWT

示例:

dbutils
 |-- __init__.py
 |-- db.py
instance
 |-- jwt.sqlite
tests
 |-- __init__.py
 |-- conftest.py
 |-- test_encodetoken.py