当我在终端中运行python脚本时它工作得很好。 然后我继续通过来自localhost的PHP的shell_exec运行完全相同的脚本。
shell_exec("python /Applications/MAMP/htdocs/pharm/Webmaps.py")
它给出的错误是:
Traceback (most recent call last): File "/Applications/MAMP/htdocs/pharm/Webmaps.py", line 1, in import folium ImportError: No module named folium
它无法识别已安装的模块。毋庸置疑,它可以从localhost上的windows中运行得很好。
答案 0 :(得分:0)
如果您的计算机上有多个版本的Python,则可能无效。基本上我认为正在发生的事情是,使用shell_exec
时调用的Python版本与您知道安装folium
的版本不同。尝试创建如下文件:
# test.py
import sys
print(sys.version_info)
并使用shell_exec("python /path/to/test.py")
。然后尝试python /path/to/test.py
。我希望它会有所不同。即使它没有什么不同,它仍然可能意味着您有两个或更多相同版本的Python安装(不太可能,但可能)。您可以运行以下命令来检查。同时尝试shell_exec("which python")
和which python
。我冒昧地猜测,应该给你足够的信息来解决这个问题。
答案 1 :(得分:0)
如果使用sudo pip install xxxxx
安装软件包,则它将保存在/usr/lib/pythonX.X/dist-packages
下。
如果省略sudo
,它将保存在用户的主目录下,并且很可能无法通过php引擎访问。
因此,尝试添加sudo
命令来安装软件包。