我们是否可以创建一个使用Python调用的.exe文件,而不在目标计算机中安装Python?

我们是否可以创建一个使用Python调用的.exe文件,而不在目标计算机中安装Python?,python,c,python-3.x,python-c-api,Python,C,Python 3.x,Python C Api,我的C代码取自: #定义PY\u-SSIZE\u-T\u-CLEAN #包括 int main(int argc,char*argv[]) { wchar_t*program=Py_DecodeLocale(argv[0],NULL); if(程序==NULL){ fprintf(stderr,“致命错误:无法解码argv[0]\n”); 出口(1); } Py_SetProgramName(program);/*可选,但推荐*/ Py_初始化(); PyRun_SimpleString(“将n

我的C代码取自:

#定义PY\u-SSIZE\u-T\u-CLEAN
#包括
int
main(int argc,char*argv[])
{
wchar_t*program=Py_DecodeLocale(argv[0],NULL);
if(程序==NULL){
fprintf(stderr,“致命错误:无法解码argv[0]\n”);
出口(1);
}
Py_SetProgramName(program);/*可选,但推荐*/
Py_初始化();
PyRun_SimpleString(“将numpy作为np导入\n”
student=np.dtype([('name','S20'),('age','i1'),('marks','f4'))\n
“打印(学生)\n”);
if(Py_FinalizeEx()<0){
出口(120);
}
PyMem_RawFree(项目);
返回0;
}
它在安装了python3和python3numpy的机器上编译并运行得非常好。 输出:

[('name', 'S20'), ('age', 'i1'), ('marks', '<f4')]
[('name','S20'),('age','i1'),('marks','使用。它将把您的Python代码、Python解释器和所需的包打包到一个独立的.exe文件中

具体来说,numpy正在进行中

我会去掉C程序,将您的主要Python代码放在一个.py文件中,然后让PyInstaller为您完成这项工作

这是一个比要求用户安装Python解释器更好的解决方案,更不用说任何特定的库和包了。它允许每个应用程序都有自己的Python版本和包


详细信息请参见。

如果没有Python,您希望您的程序从何处获得所有Python功能?此代码显然调用Python和Python numpy库,因此不,这是不可能的。但我想应该也可以将它们安装在Win10框上。谢谢!但是,我无法摆脱C程序,因为主程序k是由C部分完成的。python只会在新启动的进程中创建一些动画文件。啊,是的,这会改变情况。这里有另一个想法:您的C和python代码是否需要在内存中共享数据?或者在从C代码启动的单独进程中运行python代码,并使用文件或stdin/stdout或命名pi共享数据是否可行如果一个单独的Python进程工作,那么您可以使用pySturnor构建该可执行文件。在头脑风暴中,我们可以再把一个想法转化为:将Python作为您的主程序,编译您的C代码到DLL,并使用本地Python /C API或类似克里夫或SWIG之类的东西,使您更容易调用,如果您使用C++。这是一种仍然可以使用PyInstaller将二进制文件捆绑在一起的方法。
[('name', 'S20'), ('age', 'i1'), ('marks', '<f4')]
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'numpy'