我通过pip安装打破了嵌入式Python安装

时间:2018-02-24 17:15:53

标签: python pandas numpy pip python-3.5

我在内置python脚本的工作中使用软件。唯一的缺点是它没有带有许多有用的模块。查看论坛和对软件的支持,知识库有关于如何添加新模块的说明。一切都很好,但是在尝试安装Pandas的时候,我一直在为Numpy获得一个失败的依赖,尽管Numpy实际上是在该python版本的站点包中。

我做了其他几次尝试,然后遇到了这行代码。

python -m pip install --user numpy scipy matplotlib ipython jupyter pandas sympy nose

我将python替换为该版本Python的路径,然后安装完成。但现在Python版本已经破产。当我在软件中打开脚本编辑器并尝试运行任何代码时,我收到错误消息

Cannot initialize the script system: Error in line 1:PyEval_EvalFramesEx returned NULL without setting an error.

即使我尝试在控制台中运行该版本的Python,光标也会向下移动一行而没有任何反应。我甚至不能再打字了。

该软件的旧版本仍然可以正常工作,我相信这是因为它使用Python 3.4而这个较新的版本运行的是Python 3.5。我甚至尝试卸载并重新安装软件以进行全新安装,即使重新安装在新位置,我仍然会遇到同样的错误。我担心它的系统范围特定于Python 3.5的软件版本。我有一个外部Python 3.5我安装只是为了检查它运行正常。它只是Python的软件版本,现在已被破坏。

1 个答案:

答案 0 :(得分:1)

您已经安装了Python项目,其中包含已加载到Python二进制文件中的已编译组件。这些组件与您的软件包的嵌入式Python版本(可能无法加载它们)相冲突。

因为您使用--user开关来安装这些软件包,所以仍然有一种方法可以恢复您的安装。这些包都安装在site.USER_SITE location中,这意味着您可以手动重新删除它们。

首先,您需要使用禁用从该位置加载代码的开关来运行Python。您可以尝试使用-s switch(禁用USER_SITE选项)或-I switch(启用隔离模式,忽略环境变量和USER_SITE选项)执行此操作,验证禁用这些选项实际上为您提供了一个可用的Python提示符:

path/to/software/python -s   # or -I

当这种方法有效时,您可以将site模块作为脚本运行,以打印出USER_SITE目录所在的位置:

path/to/software/python -s -m site   # or -I -m site

查找USER_SITE: <path>行,它应以site-packages结尾。然后,将该目录的内容移动到其他位置(作为备份保留)。然后再尝试在没有-s / -I开关的情况下运行Python。