代码之家  ›  专栏  ›  技术社区  ›  ahmed barbary

当从另一台服务器上的共享路径读取Excel文件时,远程错误显示访问被拒绝?

  •  0
  • ahmed barbary  · 技术社区  · 3 年前

    我在服务器上使用SQL Server 2019,当我尝试使用python 3.10从共享路径读取Excel文件时,我遇到了问题。

    服务器上存在SQL Server 7.7 我需要访问和读取的共享文件存在于同一台服务器上。

    当我执行读取本地服务器上的Excel文件时,它正在从路径 D:\ExportExcel\testData.xlsx

    但当尝试从共享路径读取Excel时,如下所示

    EXECUTE sp_execute_external_script
            @language = N'Python',
            @script = N'import pandas as pd
                        df = pd.read_excel(r"\\192.168.7.7\ExportExcel\testData.xlsx", sheet_name = "Sheet1")
                        print(df)';
    

    我得到一个错误:

    消息39004,级别16,状态20,第48行
    执行“sp_execute_external_script”期间出现“Python”脚本错误,HRESULT为0x80004004。

    消息39019,级别16,状态2,第48行
    出现外部脚本错误:

    执行中出错。检查输出以了解更多信息。

    追踪(最近一次通话):

    文件“”,第5行,在
    文件“D:\ProgramData\MSSQLSERVER\Temp PY\Appcontainer1\9D383F5D-F77E-444E-9A82-B8839C8801E3\sqlindb_0.PY”,第31行,在转换中
    df=pd.read_excel(r“\192.168.7.7\ExportExcel\testData.xlsx”,sheet_name=“Sheet1”)
    文件“D:\SQL Data\MSSQL15.MSSQLSERVER\PYTON_SERVICES\lib\site packages\pandas\util_decorators.py”,第178行,包装器中
    return func(*args,**kwargs)
    文件“D:\SQL Data\MSSQL15.MSSQLSERVER\PYTON_SERVICES\lib\site packages\pandas\util_decorators.py”,第178行,包装器中
    return func(*args,**kwargs)
    文件“D:\SQL Data\MSSQL15.MSSQLSERVER\PYTON_SERVICES\lib\site packages\pandas\io\excel.py”,第307行,在read_excel中
    io=ExcelFile(io,engine=engine)
    文件“D:\SQL Data\MSSQL15.MSSQLSERVER\PYTON_SERVICES\lib\site packages\pandas\io\excel.py”,第394行,位于 初始化

    消息39019,级别16,状态2,第48行
    出现外部脚本错误:

    self.book=xlrd.open_workbook(self。 io)
    文件“D:\SQL Data\MSSQL15.MSSQLSERVER\PYTON_SERVICES\lib\site packages\xlrd_ 初始化
    .py”,第111行,在open_workbook中
    open(filename,“rb”)为f:
    PermissionError:[Erno 13]权限被拒绝:“\\192.168.7.7\ExportExcel\testData.xlsx”

    SqlSatelliteCall错误:执行中出错。检查输出以了解更多信息。

    来自外部脚本的STDOUT消息:
    SqlSatelliteCall函数失败。有关详细信息,请参阅控制台输出。

    追踪(最近一次通话):
    文件“D:\SQL Data\MSSQL15.MSSQLSERVER\PYTON_SERVICES\lib\site packages\revoscalepy\computecontent\RxInSqlServer.py”,第605行,在rx_SQL_ssatellite_call中
    rx_snative_call(“SqlSatelliteCall”,参数)
    rx_native_call中的文件“D:\SQL Data\MSSQL15.MSSQLSERVER\PYTON_SERVICES\lib\site packages\revoscalepy\RxSerializable.py”,第375行
    ret=px_call(函数名,参数)
    RuntimeError:revoscalepy函数失败。

    请如何解决上述问题?

    我尝试过的:

    1. 我试着从跑步中打开共享路径;我可以打开它并创建新文件,并在同一路径上读写

    2. 我试着用另一种工具来阅读 openrowset

       select * 
       from OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0 Xml;Database=\\192.168.7.7\ExportExcel\testData.xlsx;HDR=YES','select * FROM [Sheet1$]')
      

      并成功读取Excel文件。

    3. 文件夹路径和文件具有以下所有权限 网络服务、所有者和管理员以及经过身份验证的用户和所有应用程序包,每一个都可以完全控制这一切。

    拜托,可能是什么问题?

    我试着用 python pysharm 运行脚本python

    对于共享路径,它读作成功。

    0 回复  |  直到 3 年前