有人可以帮助我吗?
让我更好地解释自己。 我有这个文件夹结构:
praw-test
jobs
__init__.py
redisJob.py
main.py
如果我直接运行python jobs\redisJob.py
,它就可以了。
但是,如果我尝试在redisJob.py
中导入文件main.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)
为了确保,导入命令是
from jobs.redisJob import DailyJob
我做错了吗?
更新
我找到了一个解决方法。
我只需要在urllib3
中导入main.py
,然后分配正确的版本。
import urllib3
urllib3.__version__ = '1.21.1'
from jobs.redisJob import DailyJob
这三行必须在我的剧本之上。
答案 0 :(得分:0)
您似乎在不同的环境下导入。不同的发射技术可以产生不同的过程和炮弹;这可能导致环境变量的值超出预期。
我不知道足够的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
您可能需要拆分字符串,提供缺失值的默认值或其他一些修改。