python 3安装在2个不同的位置 - 模块出错

时间:2017-07-31 07:00:17

标签: python-3.x module urllib

我试图在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

2 个答案:

答案 0 :(得分:0)

尝试python -m pip install package

答案 1 :(得分:0)

要回答您的问题,有两点要做:

<强> 1。您安装的urllib包是假的

您尝试安装的软件包是一个恶意创建的python软件包,其设计看起来像一个真正的软件包(在本例中为urllib3)。安装后,程序包会尝试将有关安装程序包的系统的一些基本信息发送到URL(您可以在此here上查看更多详细信息)。您可以通过以下任一链接阅读有关此假包裹的更多信息:

将您系统的基本信息发送到未知来源并不是您可以做的最差事情,但在可能的情况下肯定是您想要避免的事情。

<强> 2。要正确安装软件包......

  • 特别是urllib:

    要安装urllib,您需要指定要安装的urllib的版本。例如,pip install urllib3pip install urllib2

  • 一般包装:

    一个有用的工具是pip search <package-name>功能,可让您查看与给定名称匹配的可用包。然而,这并不完美,因为它可能会列出您安装的恶意库。一个好的指导原则是您应该密切关注软件包文档中的安装说明,以避免任何不可预见的问题。生活在一个人们假装蟒蛇包装的世界里,这只是一个不幸的必需品。