OSError:[WinError 193]%1不是有效的Win32应用程序-尝试导入numpy时

时间:2019-06-23 12:46:58

标签: python numpy eoserror

我可以安装numpy或pandas,但不能将它们导入cmd,jupyter笔记本或Sublime文本中。 (不过,我可以在Pycharm中安装和导入它们。)

我已经搜索了不同的论坛/ stackoverflow,寻求答案,但是最常见的原因例如体系结构不匹配(我使用Python 32位)或路径中的空格似乎不是这里的问题。 我尝试过重新安装Python,但是并不能解决问题。

该错误总是指出“ ctypes” lib,而这特别是numpy模块的问题。当我尝试导入pandas / matplotlib时,导入numpy失败。

>>> import numpy
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\jadwi\AppData\Roaming\Python\Python37\site-packages\numpy\__init__.py", line 142, in <module>
    from . import core
  File "C:\Users\jadwi\AppData\Roaming\Python\Python37\site-packages\numpy\core\__init__.py", line 23, in <module>
    WinDLL(os.path.abspath(filename))
  File "C:\Users\jadwi\AppData\Local\Programs\Python\Python37-32\lib\ctypes\__init__.py", line 356, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: [WinError 193] %1 is not a valid Win32 application

>>> help('numpy')
problem in numpy - OSError: [WinError 193] %1 is not a valid Win32 application 

>>> import pandas
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\jadwi\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\__init__.py", line 13, in <module>
    __import__(dependency)
  File "C:\Users\jadwi\AppData\Roaming\Python\Python37\site-packages\numpy\__init__.py", line 142, in <module>
    from . import core
  File "C:\Users\jadwi\AppData\Roaming\Python\Python37\site-packages\numpy\core\__init__.py", line 23, in <module>
    WinDLL(os.path.abspath(filename))
  File "C:\Users\jadwi\AppData\Local\Programs\Python\Python37-32\lib\ctypes\__init__.py", line 356, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: [WinError 193] %1 is not a valid Win32 application

我知道人们以前曾犯过这个错误,但是,正如我提到的那样,这似乎不是体系结构不匹配的问题,路径中没有空格,我真的很固执。任何有关解决方法的建议将不胜感激。

4 个答案:

答案 0 :(得分:1)

您可以尝试一下,更新包后我解决了我的问题。

pip install --upgrade numpy

如果没有任何更改,则可以先升级pip,而不要升级numpy。

python -m pip install --upgrade pip 

(如果要更新所有软件包,请参阅此页面:How to upgrade all Python packages with pip?

或者检查python版本是否适合您的环境。重新安装新版本后,请确保完全删除旧版本。

答案 1 :(得分:0)

好的,所以这最终对我有所帮助:

  1. 我仅使用“ pip uninstall numpy”卸载了一个numpy模块,

  2. 我再次用“ pip install numpy”重新安装了它,

  3. 我运行了python,仅从numpy导入了一个函数(因为我认为也许只有一部分函数无法导入,而不是整个 numpy)-“来自numpy导入数组”

  4. 该函数正常工作,因此我尝试再次导入整个numpy,但这次成功了,没有OSError。

答案 2 :(得分:0)

重新安装numpy对我不起作用。

我遇到了同样的问题,并在错误消息中注意到指向numpy的多个路径。例如

C:\Users\USERNAME\AppData\Roaming\Python\Python37\*
C:\Users\USERNAME\AppData\Local\Programs\Python\Python37-32\*

我删除了C:\Users\USERNAME\AppData\Roaming\Python\Python37\*文件夹,因为该文件夹是我先前卸载的Python留下的。在您确定不会破坏其他功能之前,我不建议删除任何内容,因此,如果它不能为您解决问题,则可以将其发送到回收站并进行还原。

答案 3 :(得分:0)

我正在使用PyCharm,决心学习PipEnv虚拟化工具(它对下载的程序包使用SHA256哈希),并且遇到了同样的错误消息(错误193,%1不是有效的win32或其他错误)。我意识到这并非您的情况,您正在使用python和PyCharm,因此我认为它可能并且可能会帮助到达这里的其他人。反正...

我的解决方法是: 1.)在“添加Python解释器”窗口(首先设置虚拟化解释器)中,我必须将“ C:\ Users \ ericm \ AppData \ Roaming \ Python \ Python38 \ Scripts \ pipenv.exe”作为我的“ Pipenv可执行文件” '。 (这样做之后,尝试使用它时我开始出现权限错误) 2.)我必须将项目路径添加到“工作目录”中(例如C:\ Users \ ericm \ OneDrive \ Documents \ Programming \ Python \ NameOfProject)

没有任何错误,我的应用程序又可以完全正常工作。