我所在的团队正在开发一个可以用python编写脚本的应用程序(目前在Windows上)。python2.6安装在应用程序.exe,因此最终用户不必在其工作站上安装python。你知道吗
我没有亲自选择python的上述发行版,我发现它非常奇怪,甚至不知道它是从哪里来的(我开始工作时它就在那里)。这是一个平原python.exe,旁边还有python26.dll、python26.zip和一些.pyd和.dll。 python26.zip的内容类似于lib/目录中的内容。你知道吗
dir结构如下所示:
ApplicationDir/
├ Application.exe
├ Application.dll
├ _Application.pyd
├ python.exe
├ python.dll
├ python26.zip
├ _sqlite3.pyd
├ sqlite3.dll
├ select.pyd
├ _socket.pyd
└ [... some more pyd follow]
现在我想包括一些我自己的纯python包,这些包应该可以与我的应用程序一起使用(比如与数据库交谈等等)。你知道吗
我希望如果我继续使用./lib/site-packages/就可以了。你知道吗
ApplicationDir/
├ Application.exe
├ ...
└ lib/
└ site-packages/
├ foo-1.2.egg
├ bar-0.9.egg
└ more-libs.pth
更多-库.pth内容:
./foo-1.2.egg
./bar-0.9.egg
我的假设是错误的,这是个大问题。 我已经通过复制我的系统python安装(使用libs、Lib、DLLs等dir)测试了一个“经典”python发行版,它可以工作。 但由于我只负责python模块,所以我不确定我是否能来说“嘿,伙计们,让我们以另一种方式分发python”。你知道吗
我被困在这里,因为site
似乎没有搜索lib/site packages目录。你知道吗
有什么想法吗?也许另一个python迷你发行版可以搜索正确的目录?还是我该补一下站点.py为了满足我的需要?你知道吗
干杯,很快就会读到你的!你知道吗
编辑
我找到了一个解决方法,在python26.zip存档中有一个site.py
补丁。
我强制添加一个名为“python packages”的站点目录,该目录应该与我的python.exe. 我在addsitepackages()函数中执行此操作,该函数在python启动后立即调用。你知道吗
补丁如下:
285c285,290
<
---
>
> #HACK for distribution with a packages site-dir
> exec_dir = os.path.dirname(sys.executable)
> sitedirs.append(os.path.join(exec_dir, 'python-packages'))
> # end of hack
>
您可以在应用程序中添加ApplicationDir/lib/site包搜索路径地址:
或使用环境变量:
或检查sysconfig模块:
例如,platlib安装在
{platbase}/lib/python{py_short_version}/site-packages
(根据系统配置.py)你知道吗相关问题 更多 >
编程相关推荐