9159金沙游艺场-奥门金沙游艺场-[欢迎您]

9159金沙游艺场为您呈现最新的面貌!,目前注册送体验金,欢迎您将成为影视娱乐行业新的风向标,是亚洲的优质娱乐先锋。

python最小化客户机

日期:2020-01-04编辑作者:服务器

如何把python最小化安装在客户机上面,python最小化客户机

因为想尝试在我们的桌面软件中加入python支持,所以想简化python的库,到时候直接放到客户机上面,并且放到我们的目录下,尽量免去不必要的东西,也不要影响机子,不过当写好的程序放到测试机子上后,老是说找不到no module named site,后来看下了代码,发现是找不到site这个库,这个库也是python初始化的时候需要用到的库,解决方法:

1.尝试把我电脑上的python里面的Lib放到客户机上程序的目录,建立一个python27/lib/,结果还是失败

2.把lib下的东西放到跟exe同一个目录,可以,但是还是谁显示import pbk_resource错误,但已经可以运行python的解释器了,不过因为跟exe在同一个目录太杂,所以放弃这种方法

 

 

 

后来看了Py_9159金沙游艺场,Initialize的代码,发现在没有设置PYTHONHOME的时候,python是这样查找lib的:

如下代码

 

 if (pythonhome == NULL || *pythonhome == '') {
        if (search_for_prefix(argv0_path, LANDMARK))
            pythonhome = prefix;
        else
            pythonhome = NULL;
    }
    else
        strncpy(prefix, pythonhome, MAXPATHLEN);

 

1.这个是当pythonhome为NULL的时候,python的初始化函数会调用search_for_prefix来设置默认的home

 

static int

search_for_prefix(char *argv0_path, char *landmark)
{
    /* Search from argv0_path, until landmark is found */
    strcpy(prefix, argv0_path);
    do {
        if (gotlandmark(lan dmark))
            return 1;
        reduce(prefix);
    } while (prefix[0]);

    return 0;
}

 

2.landmark是一个字符串,里面是lib/os.py,gotlandmark主要是测试下当年目录下的是否有lib/os.py

 

/* gotlandmark only called by search_for_prefix, which ensures

   'prefix' is null terminated in bounds.  join() ensures

   'landmark' can not overflow prefix if too long.

*/

static int
gotlandmark(char *landmark)
{
    int ok;

    Py_ssize_t n;

    n = strlen(prefix);
    join(prefix, landmark);
    ok = ismodule(prefix);
    prefix[n] = '';
    return ok;
}

 

3.如果没有,则再往上上找一层目录,继续执行2的步骤,直到找到或者prefix[0]为0后才会停止

 

那么我们只要把python27下的lib考到客户机上的exe目录下就可以了

 

把测试程序运行一遍以后,正常,接下来就是精简库了, 基本上把test和unittest,email之类的库删掉就可以了

因为想尝试在我们的桌面软件中加入 python 支持,所以想简化 python 的库,到时候...

本文由9159金沙游艺场-奥门金沙游艺场-[欢迎您]发布于服务器,转载请注明出处:python最小化客户机

关键词:

季二前端质量优化

【面试季二】前端性能优化,季二前端性能优化   这是一个老生常谈的内容了,90%的面试里都会问到,在这里只是再...

详细>>

Linux下crontab的使用

Linux下crontab的使用 1.作用 使用crontab命令可以修改crontab配置文件,然后该配置由cron公用程序在适当的时间执行,该命...

详细>>

响应式设计的格局

一种让 IE6/7/8 支持 media query 响应式设计的方法,ie6query 在不同的浏览器宽度下使用不同的 CSS 声明,常见的方案是使...

详细>>

python 9159金沙游艺场socket编制程序 TCP

python socket编程 TCP python socket编程 TCP by wuxy server.py import socketimport commandsBUF_SIZE = 1024server_addr = ('127.0.0.1',8888)server = s...

详细>>