Python 值导入praw脚本时出错

Python 值导入praw脚本时出错,python,import,python-3.5,praw,valueerror,Python,Import,Python 3.5,Praw,Valueerror,有人能帮我吗 让我解释清楚。 我有以下文件夹结构: praw-test jobs __init__.py redisJob.py main.py 如果我直接运行pythonjobs\redijob.py,它就可以正常工作 但是,如果我尝试在main.py中导入文件redisJob.py,则会出现以下错误: File ".\main.py", line 13, in <module> from jobs.redisJob imp

有人能帮我吗

让我解释清楚。 我有以下文件夹结构:

praw-test
    jobs
        __init__.py
        redisJob.py
    main.py
如果我直接运行
pythonjobs\redijob.py
,它就可以正常工作

但是,如果我尝试在
main.py
中导入文件
redisJob.py
,则会出现以下错误:

File ".\main.py", line 13, in <module>
    from jobs.redisJob import DailyJob
  File "D:\git\praw-test\jobs\redisJob.py", line 5, in <module>
    import praw
  File "D:\git\praw-test\env\lib\site-packages\praw\__init__.py", line 14, in <module>
    from .reddit import Reddit  # NOQA
  File "D:\git\praw-test\env\lib\site-packages\praw\reddit.py", line 5, in <module>
    from update_checker import update_check
  File "D:\git\praw-test\env\lib\site-packages\update_checker.py", line 11, in <module>
    import requests
  File "D:\git\praw-test\env\lib\site-packages\requests\__init__.py", line 53, in <module>
    major, minor, patch = urllib3_version
ValueError: not enough values to unpack (expected 3, got 1)

我做错什么了吗

更新 我找到了一个解决办法。 我只需要在我的
main.py
中导入
urlib3
,然后分配正确的版本

import urllib3
urllib3.__version__ = '1.21.1'
from jobs.redisJob import DailyJob

这三行必须位于我的脚本顶部。

看起来您是在不同的环境下导入的。不同的发射技术可以产生不同的过程和炮弹;这可能导致环境变量的值超出预期值

我不知道足够的SDE细节来给你一个明确的解决方案,但我可以推荐一个简单的调试行。在问题行之前插入

print urllib3_version
查看每个启动方法中的值。我希望有一些实现细节,比如以某种方式连接的值,或者缺少一些

您可以通过检查来解决此问题:

if len(urllib3_version) == 3:
    major, minor, patch = urllib3_version
else:
    # This will depend on what you see in the single value

您可能需要拆分字符串,为缺少的值提供默认值,或者进行一些其他调整。

python main.py
打印
dev
python jobs\redisJob.py
打印
1.21.1
。如何在不手动编辑模块的情况下修复该问题?好的,我找到了一个解决方法,我编辑了我的帖子。很显然,感谢您,我从来没有想过要编辑像urllib3这样的模块!
if len(urllib3_version) == 3:
    major, minor, patch = urllib3_version
else:
    # This will depend on what you see in the single value