导入 praw 脚本时出现 ValueError
ValueError when importing a praw script
有人可以帮助我吗?
让我更好地解释一下自己。
我有这个文件夹结构:
praw-test
jobs
__init__.py
redisJob.py
main.py
如果我 运行 直接 python jobs\redisJob.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)
为了确认,导入命令是
from jobs.redisJob import DailyJob
我是不是做错了什么?
更新
我找到了解决方法。
我只需要在我的 main.py
中导入 urllib3
,然后分配正确的版本。
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
您可能需要拆分字符串、为缺失值提供默认值或进行一些其他调整。
有人可以帮助我吗?
让我更好地解释一下自己。 我有这个文件夹结构:
praw-test
jobs
__init__.py
redisJob.py
main.py
如果我 运行 直接 python jobs\redisJob.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)
为了确认,导入命令是
from jobs.redisJob import DailyJob
我是不是做错了什么?
更新
我找到了解决方法。
我只需要在我的 main.py
中导入 urllib3
,然后分配正确的版本。
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
您可能需要拆分字符串、为缺失值提供默认值或进行一些其他调整。