我试图在Windows中了解python 3.6中的urllib模块 我能够安装模块并使用python应用程序运行代码,但是当我在代码的位置运行python命令时,它会出错并说模块没有被安装。我在我的电脑上搜索过所有python.exe文件,只有1个。
c:\Python36\Scripts>python
Python 3.6.2 (v3.6.2:5fd33b5, Jul 8 2017, 04:57:36) [MSC v.1900 64 bit
(AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import urllib
>>>
>>> ^Z
c:\Python36\Scripts>
c:\Python36\Scripts>cd c:\Python36\Juggles\
c:\Python36\Juggles>python urllib.py
Traceback (most recent call last):
File "urllib.py", line 1, in <module>
import urllib.request
File "c:\Python36\Juggles\urllib.py", line 1, in <module>
import urllib.request
ModuleNotFoundError: No module named 'urllib.request'; 'urllib' is not a
package
c:\Python36\Juggles>
c:\Python36\Juggles>python
Python 3.6.2 (v3.6.2:5fd33b5, Jul 8 2017, 04:57:36) [MSC v.1900 64 bit
(AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import urllib
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "c:\Python36\Juggles\urllib.py", line 1, in <module>
import urllib.request
ModuleNotFoundError: No module named 'urllib.request'; 'urllib' is not a
package
>>>
>>>
>>> import urllib.request
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "c:\Python36\Juggles\urllib.py", line 1, in <module>
import urllib.request
ModuleNotFoundError: No module named 'urllib.request'; 'urllib' is not a
package
>>>
>>> x = urllib.request.urlopen('https://www.google.com')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'urllib' is not defined
>>>
>>> print(x.read())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'x' is not defined
>>>
基本上我在cmd&gt;中使用pip安装了模块。 python pip.exe安装.. 然后我使用import urllib检查,没有错误 然后我使用cd转到代码的位置并运行python urllib.py 它说模块没有安装。 然后我再次进入python,它说模块没有被安装。 但是之前......它去了哪里? 我做错了什么?
我也尝试了-m选项,如下所示,但我收到此错误
c:\Python36\Scripts>python -m pip install urllib
Collecting urllib
Using cached urllib-1.21.1.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Users\butte\AppData\Local\Temp\pip-build-
ejdu38tm\urllib\setup.py", line 191
s.connect((base64.b64decode(rip), 017620))
^
SyntaxError: invalid token
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in
C:\Users\Juggles\AppData\Local\Temp\pip-build-ejdu38tm\urllib\
它试图在c:\ users中执行某些操作,这些操作不应该运行python.exe,这让我想知道是否有某个地方似乎无法找到其他版本
我也尝试过从新窗口升级cmd(我总是以管理员身份打开cmd)并在下面得到同样的错误
C:\windows\system32>python
Python 3.6.2 (v3.6.2:5fd33b5, Jul 8 2017, 04:57:36) [MSC v.1900 64 bit
(AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import urllib
>>> import urllib.request
c:\Python36\Juggles>python urllib.py
Traceback (most recent call last):
File "urllib.py", line 1, in <module>
import urllib.request
File "c:\Python36\Juggles\urllib.py", line 1, in <module>
import urllib.request
ModuleNotFoundError: No module named 'urllib.request'; 'urllib' is not a
package
答案 0 :(得分:0)
尝试python -m pip install package
答案 1 :(得分:0)
要回答您的问题,有两点要做:
<强> 1。您安装的urllib包是假的
您尝试安装的软件包是一个恶意创建的python软件包,其设计看起来像一个真正的软件包(在本例中为urllib3)。安装后,程序包会尝试将有关安装程序包的系统的一些基本信息发送到URL(您可以在此here上查看更多详细信息)。您可以通过以下任一链接阅读有关此假包裹的更多信息:
将您系统的基本信息发送到未知来源并不是您可以做的最差事情,但在可能的情况下肯定是您想要避免的事情。
<强> 2。要正确安装软件包......
特别是urllib:
要安装urllib,您需要指定要安装的urllib的版本。例如,pip install urllib3
或pip install urllib2
。
一般包装:
一个有用的工具是pip search <package-name>
功能,可让您查看与给定名称匹配的可用包。然而,这并不完美,因为它可能会列出您安装的恶意库。一个好的指导原则是您应该密切关注软件包文档中的安装说明,以避免任何不可预见的问题。生活在一个人们假装蟒蛇包装的世界里,这只是一个不幸的必需品。