我正在尝试开始使用在Server 2017中运行python。
它可以开箱即用,我可以运行简单的脚本,如列出已安装的包:
EXEC sp_execute_external_script
@language = N'Python',
@script = N'import pkg_resources
print([p.project_name for p in pkg_resources.working_set])'当我想要添加一个新的包时,我遵循微软2017年的文档:https://learn.microsoft.com/en-us/sql/machine-learning/package-management/install-python-packages-standard-tools?view=sql-server-2017,它说,基本上只需安装新包。因此,我转到安装:
C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES然后跑:
scripts\pip.exe install pyarrow这会将升级后的numpy版本作为依赖项安装,然后尝试调用像上面这样简单的python脚本时,会得到以下错误:
Msg 39012, Level 16, State 1, Line 0
Unable to communicate with the runtime for 'Python' script. Please check the requirements of 'Python' runtime.当numpy在这个更新的版本中时,什么都不会运行。我可以通过从安装媒体修复Server安装来解决这个问题,但这使我回到了我的初始安装程序,而没有所需的py箭头包。
在试图排除故障后(包括。安装特定版本的熊猫和numpy)我现在不能回到工作状态与修理-将尝试卸载和重新安装的功能。
我可以看到,在Server 2019 (https://learn.microsoft.com/en-us/sql/machine-learning/package-management/install-additional-python-packages-on-sql-server?view=sql-server-ver15)中安装python包的过程已经发生了变化,所以在2017年可能会出现一些缺陷,但我在任何地方都找不到它的文档。
我运行最新的Server 2017 (cu21)开发人员版本。
一些嫌疑人:
当前全错误:
Msg 39012, Level 16, State 1, Line 0
Unable to communicate with the runtime for 'Python' script. Please check the requirements of 'Python' runtime.
STDERR message(s) from external script:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES\lib\site-packages\revoscalepy\__init__.py", line 99, in <module>
from .RxSerializable import RxMissingValues
File "C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES\lib\site-packages\revoscalepy\RxSerializable.py", line 10, in <module>
from pandas import DataFrame
File "C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES\lib\site-packages\pandas\__init__.py", line 39, in <module>
from pandas.core.api import *
File "C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES\lib\site-packages\pandas\core\api.py", line 10, in <module>
from pandas.core.groupby import Grouper
STDERR message(s) from external script:
File "C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES\lib\site-packages\pandas\core\groupby\__init__.py", line 1, in <module>
from pandas.core.groupby.groupby import GroupBy # noqa: F401
File "C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES\lib\site-packages\pandas\core\groupby\groupby.py", line 25, in <module>
from pandas.util._validators import validate_kwargs
File "C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES\lib\site-packages\pandas\util\_validators.py", line 7, in <module>
from pandas.core.dtypes.common import is_bool
File "C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES\lib\site-packages\pandas\core\dtypes\common.py", line 10, in <module>
from pandas.core.dtypes.dtypes import (
STDERR message(s) from external script:
File "C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES\lib\site-packages\pandas\core\dtypes\dtypes.py", line 16, in <module>
from .inference import is_list_like
File "C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES\lib\site-packages\pandas\core\dtypes\inference.py", line 9, in <module>
from pandas.compat import (
ImportError: cannot import name 'Set'
Completion time: 2020-08-25T09:43:23.9780283+02:00发布于 2020-11-10 05:08:38
与您收到的ImportError消息相同,Server 2017上的熊猫模块也有相同的问题。这个问题最近出现在为Server 2017安装CU22之后,当我在大约两个月前设置这个环境时,这个问题并不存在。
在环境的设置中,我执行了numpy和熊猫模块升级到Python 3.5.2的最新可用版本(这是Server 2017包含的默认Python版本):
升级的原因是来自其他模块的要求(关于numpy),以及熊猫和新的numpy版本之间的兼容性问题。
在执行导入熊猫时收到ImportError错误消息后,我将其精确定位到文件中的第9-10行:
Server\MSSQL14.\PYTHON_SERVICES\Lib\site-packages\pandas\core\dtypes C:\Program\Microsoft
https://dba.stackexchange.com/questions/274283
复制相似问题