Closed coolermzb3 closed 2 years ago
demo.py 再 import 其他 site-packages 里的包前,需要:
import site
site.addsitedir(site_packages)
对于 PyStand.int,加载时这一步已经帮你们做了。
或者修改下 python38._pth 文件,把 site-packages 目录添加进去。
感谢!通过import site的方法成功了!还做了一些实验补充两点:
../script
添加到python38._pth中,则可以省略所有文件中的sys.path.append("./script")
../site-packages
对于一般如numpy等包是可行的,但pywin32
似乎比较特殊,它导入的时候叫做win32gui
,但pyd文件在名为win32
的文件夹里,所以只修改python38._pth文件依旧无法找到,还是需要在代码中使用site。总之 十分感谢!
@coolermzb3 你好 我使用pystand 构建 GUI 程序 需要使用numpy,但是我自己做的时候遇到了一些困难,你能指导一下吗? 谢谢!
啥困难?
@zuowanbushiwo 虽然不知道是啥问题,但我当时用release里自带的PyStand是没法直接把自己安装的numpy文件夹复制进site-packages并导入成功的,究其原因是因为当时PyStand所带的python解释器是32位,而我们通过conda或pip安装的numpy都是64位,然后我简单试了一下不知道怎么安装32位的numpy(好像根本就没有32的?),所以就自己编译了一个64位的PyStand。
不过现在我看sky大大也release了一个64位的PyStand,所以如果是这方面的问题应该可以解决。
感谢两位的回复 不知道怎么裁剪,整体导入体积太大了,我看你的PyQt 目录下基本只有pyd和pyi 文件,但是我install numpy 后目录下还有好多其他文件,感觉和好多文件和运行时没关系。 python 有没有trace 命令,能够跟踪运行时所需要加载的文件。 比如 我 import numpy , 可以帮助显示我加载了哪些文件?这样对于大的python项目还是很多帮助。 谢谢!
numpy一共61.7MB 好像不能简单裁剪,具体可以看它的init.py文件,它导入的时候把所有的子库都import并检查了一遍,所以不能把用不到的库删掉。能直接删的只有doc和各个子目录下的tests文件,都删了后大概能减少10MB左右。不过它的大头是openblas库占34MB,还有很多零星pyd文件每个几百K。 可能可以深入到各个子库里依次尝试删掉pyd看看有无影响,不过删一个才减几百K,不知道要删到什么时候,我就没有继续尝试了)
唔 可能还可以删掉init.py文件中导入子库的代码再删那些用不到的库 不过我没有尝试过不知道效果如何)
你可以写个脚本:
感谢
由于项目需要在程序中需要另起一个进程调用python:
但这样会导致无法导入site-packages中的库。仔细想来,这也正是PyStand源码的意义所在。
那么如果有这种需求,该如何实现呢,烦请不吝赐教,谢谢!!