【问题标题】:python 3 installed in 2 different locations - error with modulepython 3安装在2个不同的位置-模块错误
【发布时间】:2017-07-31 07:00:16
【问题描述】:

我正在尝试了解 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中使用pip安装了模块> python pip.exe install.. 然后我使用 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

【问题讨论】:

  • 请从您的问题中删除不相关的行。你贴了这么多行,有点不可读

标签: python-3.x module urllib


【解决方案1】:

试试python -m pip install package

【讨论】:

  • 当我尝试安装在 c:\users 等而不是 c:\python36 时,我得到了 egg.info 错误
  • 我认为没有所有输出就没有意义抱歉...第一部分显示 import urllib 可以正常工作,然后在它下面我转到该位置并尝试运行代码在那里,现在它不起作用。=等
  • 请在您问题下的评论中回复上述回复
  • 是的,它仍然与 cmd 运行 python 的方式有关,而不是仅从 IDLE 或 Python 应用程序等运行它
【解决方案2】:

为了回答您的问题,需要说明两点:

1.你安装的urllib包是假的

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

将有关您系统的基本信息发送给未知来源并不是您可以做的最糟糕的事情,但肯定是您希望尽可能避免的事情。

2。正确安装软件包...

  • 具体是urllib:

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

  • 一般的任何包:

    一个有用的工具是pip search &lt;package-name&gt; 功能,它可以让您查看与给定名称匹配的可用包。然而,这并不完美,因为它可能会列出像您安装的那样的恶意库。一个好的指导方针是,您应该严格遵循软件包文档中的安装说明,以避免任何不可预见的问题。这只是生活在一个人们制作假装 python 包的世界的不幸需要。

【讨论】:

    猜你喜欢
    • 2016-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-24
    • 2018-10-22
    • 2013-08-12
    相关资源
    最近更新 更多