php - Laravel 到 Python RuntimeError:无法确定主目录
问题描述
在我的 Laravel (php) 产品中,我们调用了 python 脚本。当我在命令提示符下运行此脚本时,它工作正常。但是从 Laravel 控制器它引发了一个错误。
错误输出:
Traceback (most recent call last):
File "../public/calcuter_py/TestBasic_Mtg_Calculator.py", line 11, in <module>
import MortgageUtilFuncs
File "D:\Apache24\htdocs\projectname\public\calcuter_py\MortgageUtilFuncs.py", line 9, in <module>
import pandas as pd
File "C:\Python\lib\site-packages\pandas\__init__.py", line 55, in <module>
from pandas.core.api import (
File "C:\Python\lib\site-packages\pandas\core\api.py", line 24, in <module>
from pandas.core.groupby import Grouper, NamedAgg
File "C:\Python\lib\site-packages\pandas\core\groupby\__init__.py", line 1, in <module>
from pandas.core.groupby.generic import ( # noqa: F401
File "C:\Python\lib\site-packages\pandas\core\groupby\generic.py", line 44, in <module>
from pandas.core.frame import DataFrame
File "C:\Python\lib\site-packages\pandas\core\frame.py", line 115, in <module>
from pandas.core.series import Series
File "C:\Python\lib\site-packages\pandas\core\series.py", line 84, in <module>
import pandas.plotting
File "C:\Python\lib\site-packages\pandas\plotting\__init__.py", line 59, in <module>
from pandas.plotting._core import (
File "C:\Python\lib\site-packages\pandas\plotting\_core.py", line 17, in <module>
import pandas.plotting._matplotlib # noqa
File "C:\Python\lib\site-packages\pandas\plotting\_matplotlib\__init__.py", line 3, in <module>
from pandas.plotting._matplotlib.boxplot import (
File "C:\Python\lib\site-packages\pandas\plotting\_matplotlib\boxplot.py", line 14, in <module>
from pandas.plotting._matplotlib.core import LinePlot, MPLPlot
File "C:\Python\lib\site-packages\pandas\plotting\_matplotlib\core.py", line 34, in <module>
from pandas.plotting._matplotlib.tools import (
File "C:\Python\lib\site-packages\pandas\plotting\_matplotlib\tools.py", line 5, in <module>
import matplotlib.table
File "C:\Python\lib\site-packages\matplotlib\table.py", line 25, in <module>
from .text import Text
File "C:\Python\lib\site-packages\matplotlib\text.py", line 14, in <module>
from .font_manager import FontProperties
File "C:\Python\lib\site-packages\matplotlib\font_manager.py", line 103, in <module>
os.path.join(str(Path.home()), r'AppData\Local\Microsoft\Windows\Fonts'),
File "C:\Python\lib\pathlib.py", line 1071, in home
return cls(cls()._flavour.gethomedir(None))
File "C:\Python\lib\pathlib.py", line 264, in gethomedir
raise RuntimeError("Can't determine home directory")
RuntimeError: Can't determine home directory
"""
我们正在使用 laravel 进程特性来执行这个 python 脚本。
请让我知道如何解决此问题。
解决方案
我遇到了和你一样的问题,我可以通过手动设置变量来解决它,因为问题是
os.environ['HOME']
没有,这导致了问题
因此,您可以使用此代码手动设置它
os.environ['HOME'] = 'C:/Python'
设置时检查你使用的是“/”而不是“\”,否则会报错。
它解决了我的问题。我也在使用 Apache 并调用 Python 脚本,并确保您的代码在脚本顶部有 python 的路径
#!C:\Python\python.exe
推荐阅读
- ios - Ejected Expo app throwing error during deployment to iOS simulator
- c# - 关联文件类型不返回文件位置
- sorting - How do I create a BinaryHeap that pops the smallest value, not the largest?
- mysql - 如何在 MySQL 事件中执行多个查询
- python - python 3 print end=""的pycharm语法检查错误但仍然可以正常工作
- javascript - 页面打开时如何预先计算表格单元格中的总数
- haskell - Verify RSA signature with public key in PEM format in Haskell
- php - 在 Laravel 的 Eloquent 查询中使用“with”时如何添加 where 子句
- c - 了解汇编与 C 对应物
- java - Tab 块中的所有行