我正在尝试将PyJWT软件包安装到环境中,但是遇到了似乎已安装的问题,可以在python中导入该软件包,但该软件包为空。
我从Windows命令行执行以下操作:
activate my-env
,我看到命令提示符通过显示(my-env)反映了更改 然后我发出
pip -install PyJwt
表示成功。所以现在我运行python并尝试
import jwt
dir(jwt)
导入有效,但是dir()
提供以下输出:
['__doc__', '__loader__', '__name__', '__package__', '__path__', '__spec__']
但是,如果我没有先选择环境,即我在没有先激活环境的情况下进行了pip install
,则安装可以正常进行,并且当我在软件包上运行dir
时,我会看到正确的输出:
['DecodeError', 'ExpiredSignature', 'ExpiredSignatureError', 'ImmatureSignatureError', 'InvalidAlgorithmError', 'InvalidAudience', 'InvalidAudienceError', 'InvalidIssuedAtError', 'InvalidIssuer', 'InvalidIssuerError', 'InvalidSignatureError', 'InvalidTokenError', 'MissingRequiredClaimError', 'PyJWS', 'PyJWT', 'PyJWTError', '__author__', '__builtins__', '__cached__', '__copyright__', '__doc__', '__file__', '__license__', '__loader__', '__name__', '__package__', '__path__', '__spec__', '__title__', '__version__', 'algorithms', 'api_jws', 'api_jwt', 'compat', 'decode', 'encode', 'exceptions', 'get_unverified_header', 'register_algorithm', 'unregister_algorithm', 'utils']
当然,问题是该软件包现在在我要使用它的环境中不可用。
关于我为解决这种情况所做的任何建议?
答案 0 :(得分:1)
您实际上是在尝试使用该程序包并遇到错误,还是只是在查看dir(...)
的输出并认为出了问题?也许conda环境中的Python版本使用了延迟加载,而conda之外的Python版本则没有进行延迟加载。
由于您正在使用Anaconda,请考虑将PyJWT with conda
而不是pip
安装到您的环境中。这应该自动解决所有依赖关系:
conda activate my-env
conda install pyjwt
答案 1 :(得分:0)
试试这个:
在安装之前,您需要使用以下命令删除软件包:
apt-get remove python3-jwt
在这种情况下,安装程序将使用以下命令安装软件包:
pip3 install pyjwt