【问题标题】:ImportError: No module named pymssql error when run from batch fileImportError:从批处理文件运行时没有名为 pymssql 的模块错误
【发布时间】:2014-09-25 09:01:31
【问题描述】:

我有一个简单的 .py 文件,它可以根据需要使用 pymssql 查询数据库服务器。 我正在尝试安排一个任务来运行脚本,但它失败了 当我从批处理文件中调用 .py 文件时,出现以下错误:

import pymssql

ImportError: 没有名为 pymssql 的模块

任何想法为什么从批处理文件运行时失败?

Python 2.7.6 在 Windows 2008 R2 上运行

【问题讨论】:

  • 如果它在您独立尝试时有效,而在您安排任务时失败,则可能是 pymssql 不在路径中(不同的环境,甚至可能是不同版本的 Python?)。
  • C:\python27 在路径中。还有什么我应该补充的吗?
  • 只是为了好玩,在运行预定进程时尝试在某处记录sys.path 的内容,并将其与脚本运行时得到的内容进行比较。
  • 我需要在我的脚本以外的 Python 文件中导入 pymssql 吗?
  • 但是说真的。使您的脚本执行import sys 并打印出sys.path 的内容。比较两种情况下的路径内容(工作与不工作),看看是否有任何差异

标签: python batch-file scheduled-tasks pymssql


【解决方案1】:

好的,原来我在测试脚本时使用的 Python.exe 位于 C:\Python27(32 位)而不是 C:\Program Files\Python27(64 位) 我需要指定正确的 exe 并且它有效。 感谢那些做出贡献的人

【讨论】:

    【解决方案2】:

    我遇到了类似的问题,但是我在 Raspberry Pi 上运行。从 etc/rc.local 运行它们时遇到问题,它一直向我显示错误。

    我做了什么

    1. 在你想运行的python脚本目录下创建print_path.py,写下如下:

      导入系统

      打印(系统路径)

    2. 转到终端 利用我从here 获取的这条线:

      sudo python3 [path_of_file]/[nameofile].py > [path_of_file]/output1.txt

    3. 去终端

      sudo nano etc/rc.local 将以下内容放入 rc.local:

      sudo python3 [path_of_file]/[nameofile].py > [path_of_file]/output2.txt &

    ** 记下与号

    比较两个输出 您应该能够找到不同的路径。 然后复制缺少的路径。

    放入python脚本(你想在启动时运行)

    import sys
    sys.path.append('/home/pi/.local/lib/python3.5/site-packages')
    

    它应该可以工作,因为它对我有用。

    【讨论】:

      【解决方案3】:

      尝试将模块的完整路径(如“C:\myfolder\mymodule.py”)添加到批处理文件中的 %path% 变量中,然后执行它

      PS: 设置 %path% = %path%+"C:\myfolder\mymodule.py" 应该是这样的

      【讨论】:

      • 试过了,我得到了同样的错误。这是我的批处理文件: Set %path% = %path%"D:\Apps\Scripts\myscript.py" "C:\Program Files\Python27\python.exe" D:\Apps\Scripts\myscript.py跨度>
      • 好的,所以我尝试使用新的批处理文件从头开始,并确保批处理文件中包含完整路径。我还更新了 PATH 环境变量,但没有运气。还有其他想法吗?
      • 为什么不添加作业或触发器来运行脚本?
      • 我最初创建了一个计划任务来调用脚本,但我一直收到错误 0x1。然后我从批处理文件中调用脚本来尝试捕获抛出的错误
      • 我需要在我的脚本以外的 Python 文件中导入 pymssql 吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-06
      • 2020-01-23
      • 2020-06-19
      • 1970-01-01
      • 2017-10-23
      • 2019-07-31
      相关资源
      最近更新 更多