所以我的目录结构是这样的:
<ul class="photos ui-sortable">
<li class="photo" data-id="26">Ratee</li>
<li class="photo" data-id="25">Ooops</li>
<li class="photo" data-id="24">missouri</li>
<li class="photo" data-id="23">notea</li>
<li class="photo" data-id="22">sigma</li>
<li class="photo" data-id="21">pawal</li>
</ul>
我现在执行my_project的方式是通过在parent_folder中启动一个终端,然后执行以下命令:
parent_folder
my_project
__init__.py
__main__.py
models
__init__.py
a_model.py
controllers
__init__.py
a_controller.py
utilities
__init__.py
a_utility.py
这很好。但是,我希望从PHP脚本中执行此操作:
python -m my_project
但是,它不起作用。刚接触python时,我只是想知道这样做的方式是什么?
答案 0 :(得分:1)
如果您检查错误日志,则可能会看到一条消息,提示can't find '__main__' module in /path/to/parent_folder
。您必须在命令中添加“ 2>&1”,以使shell_exec返回错误输出。
要复制运行项目的方式,应使用cd
切换到模块目录,然后运行python
:
<?php
$output=shell_exec('cd /path/to/parent_folder && python -m my_project 2>&1');
echo "<pre>$output</pre>";
?>
另一种方法是将模块的路径添加到PYTHONPATH,python -m
在搜索模块时使用。您可以在调用Shell之前在PHP中或在系统上全局执行此操作。在PHP中将是:
<?php
putenv("PYTHONPATH=/path/to/parent_folder");
shell_exec('python -m my_project 2>&1');
echo "<pre>$output</pre>";
?>