OSError: [WinError 193] %1 is not a valid Win32 application - when trying to import numpy

OSError: [WinError 193] %1 is not a valid Win32 application - when trying to import numpy

我可以安装numpy或pandas,但我无法在cmd、jupyter notebook或sublime text中导入它们。 (不过,我可以在 Pycharm 中安装和导入它们)。

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

错误总是在 "ctypes" 库中指出,这似乎是 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

我知道以前有人遇到过这个错误,但是,正如我提到的,这似乎不是体系结构不匹配的问题,路径中没有空格,我真的坚持了下来。任何有关如何解决它的建议将不胜感激。

好的,这最终帮助了我:

  1. 我只卸载了一个带有 "pip uninstall numpy",

  2. 的 numpy 模块
  3. 我重新安装了一次 "pip install numpy",

  4. I 运行 python, 只从 numpy 导入了一个函数(因为我认为可能只是部分函数无法导入,而不是全部 numpy) - "from numpy import array"

  5. 函数成功了,所以我再次尝试导入整个numpy,这次成功了,没有出现OSError。

重新安装 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 留下的。我不建议删除任何东西,除非你确定你不会破坏其他东西,所以如果它不能为你解决问题,可以将它发送到回收站并恢复。

你可以试试这个,我更新包后解决了我的问题

pip install --upgrade numpy

如果没有变化,可以先升级pip,再升级numpy。

python -m pip install --upgrade pip 

(如果要更新所有包,请参考本页:How to upgrade all Python packages with pip?)

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

我正在使用 PyCharm,决心学习 PipEnv 虚拟化工具(它对下载的包使用 SHA256 哈希),并且遇到了完全相同的错误消息(错误 193,%1 不是有效的 win32管他呢)。我意识到这不完全是您的情况,但是您正在使用 python 和 PyCharm 所以我认为它可能并且可能会帮助到达这里的其他人。无论如何...

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

不再有任何类型的错误,我的应用程序再次完全正常运行。