【问题标题】:Why am I getting a 500 Internal Server Error when importing local python file?为什么在导入本地 python 文件时出现 500 内部服务器错误?
【发布时间】:2021-02-18 18:19:05
【问题描述】:

我已经在我的 Mac 上设置了一个本地 apache2 网络服务器。我有一个调用 javascript 函数 onclick 的按钮。该 javascript 函数使用 JQuery .ajax 调用当前名为 test.py 的本地 python 文件(如下所示)。在 test.py 中,我试图从我命名为 frontEndSupport.py 的 python 文件中导入另一个本地模块,以使用名为 create_graph 的函数。

问题是:当我点击网页上触发所有这些的按钮时,我最终会收到 500 服务器错误。

这是test.py中的代码:

#!/usr/bin/python

# Import modules for CGI handling
import cgi, cgitb
#from frontEndSupport import create_graph
import datetime

print "Content-type: text\n\n";
# Create instance of FieldStorage
data= cgi.FieldStorage()

# Get data from fields
ticker = data.getvalue("ticker")
day = data.getvalue("day")

print("Ticker: {0}".format(ticker))
print("Day: {0}".format(day))
#ticker = "CSCO"
#day = datetime.datetime(2021, 2, 10, 14, 30, 0).strftime("%Y-%m-%d %H:%M:%S")

#create_graph(ticker, day)

就像现在一样,从 frontEndSupport 的导入注释掉,它工作正常。在 javascript 函数中,我使用 ajax 响应创建了一个警报,它给出了正确的警报(Ticker: ... Day: ...),所以我知道环境设置正确,可以访问和运行这个 python 脚本。

但是,当我取消注释“from frontEndSupport import create_graph”时,即使我不使用 create_graph,我也会在单击按钮时收到 500 内部服务器错误,因此我相信仅导入此模块就是问题所在。我已经从命令行使用带有硬编码变量的 create_graph 运行 test.py,而不是使用 cgi,它按预期工作。

正如我所说,我认为问题在于导入。它可能与服务器不知道文件在哪里有关,但我不知道如何解决这个问题(如果是这样的话)。

希望背景信息是直截了当的,但如果需要,我可以澄清或提供更多信息。

【问题讨论】:

    标签: python jquery ajax apache2


    【解决方案1】:

    我发现了问题所在。在 python 解释过程中,我从一个问题中得到一个 500 内部服务器错误。在 frontEndSupport.py 内部,有对使用 pip 安装的包的导入,这些包在 python3 的路径中进行管理。我的 shebang 必须是 #!/anaconda3/bin/python3。

    【讨论】:

      猜你喜欢
      • 2011-07-14
      • 1970-01-01
      • 1970-01-01
      • 2016-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多