关于嵌入python 和脚本打包

wangdali 2007-07-12 04:45:35
这几天一直遇到这两个问题:
查了好基本书还有官方文档以及Google.com 都没能解决, 所以想向前辈们请教,还望能解答,先谢了.
一、我的脚本想放在一个目录中,然后将这些脚本全部打包成zip文件,但不知道如何打包已经在脚本程序或嵌入程序中怎么调用这个zip包中的模块?忘能给出代码。我是想以后程序可以直接用这个zip就能读到里面的模块,而不是为了发布安装python脚本库。 就类似于java中的jar那样的效果。

二、因为我把脚本放在一个目录中,例如:

Script <dir>
|
- Module <dir>
|
- Startup.py

我知道如何在脚本中去调用这个Startup.py 模块(from Script.Module import Startup),但是不知道如何在嵌入程序中调用这个模块,一直都没能找到设置模块搜索路径的函数,好像只有察看的函数 Py_GetPath(), 可惜没有Py_SetPath() ,问题是不知道如何在嵌入程序中调用目录下的木块,以及是否有设置搜索路径的函数?

等待前辈们的回答,谢谢。
...全文
326 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangdali 2007-07-18
  • 打赏
  • 举报
回复
郁闷,结帖出错, 然后再次进入管理 分数已经分配 但是不能在进行结帖操作.
wangdali 2007-07-18
  • 打赏
  • 举报
回复
Py_Initialize(); // 初始化Python
PySys_SetPath("e:\\Script.zip"); // 设置Python库的路径
Py_Finalize(); // 关闭Python

我是这样用的, 可以成功调用到e:\\Script.zip中的脚本.
谢谢xyzxyz1111(挥泪处理大量显示器及主机)

结帖了.
wangdali 2007-07-18
  • 打赏
  • 举报
回复
我用了下面两个设置变量的方法都没办法使用,您说提的那个setenv()我不知道在哪个系统的头文件中, 引用为未定义字符. 可以肯定下面的路径没有问题, 我在"我的电脑"中设置"环境"可以正常使用. 不知道为什么? 我在继续找解决方法, 找到后就可以结帖了.

LPCTSTR PythonPath = L"PYTHONPATH";
LPCTSTR PathValue = L"e:\\Script.zip";
bool test = false;
int test2;
test = SetEnvironmentVariable(PythonPath, PathValue);
test2=_putenv("PYTHONPATH = e:\\Script.zip");
xyzxyz1111 2007-07-16
  • 打赏
  • 举报
回复
这样行不?
PyImport_ImportModule("Script.Module.Startup");

好像Script目录和Module目录下面都需要有个__init__.py文件
wangdali 2007-07-16
  • 打赏
  • 举报
回复
经过这么多天,这个问题就没有人可以回答???
xyzxyz1111 2007-07-16
  • 打赏
  • 举报
回复
用C函数
setenv("PYTHONPATH", "/path/to/your.zip");
试试看
wangdali 2007-07-16
  • 打赏
  • 举报
回复
我是想在嵌入程序中调用这个your.zip? 应该用那个函数?
xyzxyz1111 2007-07-16
  • 打赏
  • 举报
回复
按打包成zip就可以
然后用sys.path.append("your.zip") 或者将zip文件的路径添加环境变量PYTHONPATH中.
wangdali 2007-07-16
  • 打赏
  • 举报
回复
是的,我找到原因了,这个方法是可以用的.
原因是我的注释中含有中文,导致出错,并不是我调用出错.
郁闷.
不知道你会不会做模块的封包, 类似于java的 jar文件格式.
我知道,python系统会默认加载 执行程序路径下的 python25.zip 文件, 但我不想用这个名字,是否可以做到.

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧