导入请求似乎仅在外壳中有效

时间:2019-03-17 12:25:55

标签: python-3.x python-requests

我已经在python 3.7 shell中使用请求测试了一些东西,并且工作正常,但是一旦我尝试通过将其放入文件并运行来使其自动化,就会出现此错误:

Traceback (most recent call last):
  File "C:\Users\Ben\AppData\Local\Programs\Python\Python37\lib\site-packages\simple_http_server\__init__.py", line 9, in <module>
    import http.cookies as cookies
ModuleNotFoundError: No module named 'http.cookies'; 'http' is not a package

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Ben\Desktop\burp.py", line 6, in <module>
    import requests
  File "C:\Users\Ben\AppData\Local\Programs\Python\Python37\lib\site-packages\requests\__init__.py", line 43, in <module>
    import urllib3
  File "C:\Users\Ben\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\__init__.py", line 8, in <module>
    from .connectionpool import (
  File "C:\Users\Ben\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\connectionpool.py", line 11, in <module>
    from .exceptions import (
  File "C:\Users\Ben\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\exceptions.py", line 2, in <module>
    from .packages.six.moves.http_client import (
  File "C:\Users\Ben\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\packages\six.py", line 203, in load_module
    mod = mod._resolve()
  File "C:\Users\Ben\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\packages\six.py", line 115, in _resolve
    return _import_module(self.mod)
  File "C:\Users\Ben\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\packages\six.py", line 82, in _import_module
    __import__(name)
  File "C:\Users\Ben\Desktop\http.py", line 1, in <module>
    import simple_http_server
  File "C:\Users\Ben\AppData\Local\Programs\Python\Python37\lib\site-packages\simple_http_server\__init__.py", line 11, in <module>
    import Cookie as cookies
ModuleNotFoundError: No module named 'Cookie'

这是我的代码:

import json
import requests

data = requests.post("https://api.rec.net:443/api/players/v4/bulk", data={"Ids[]": "836571"})
jsonload = json.loads(data.text)
print(jsonload[0]["Bio"])

Here's both shells side by side

2 个答案:

答案 0 :(得分:0)

import requests是您要做的非常简单的事情。 让我们备份并创建一个简单的设置来运行脚本。

创建一个全新的conda环境,或者根据需要创建pip virtualenv。 使用conda install requests获取一个一个库(及其传递的dep)。 我们要寻找的环境是 not 没有six compat lib存在,即import six失败。 我们希望它失败,因为该库使您感到悲伤,如堆栈跟踪所示。 它重命名了您不想重命名的模块,包括http

现在,从Shell或IDE,使用新环境来运行脚本。

最后,由于test是python附带的标准模块,因此最好将代码重命名为其他名称,例如test1.py

答案 1 :(得分:0)

只是找出问题所在。我在一个名为http的目录中有一个文件,这引起了所有问题。谢谢大家的帮助:)