python嵌入式解释器+django实现完整迁移

文章介绍了如何在复杂项目无法使用pyinstaller时,通过下载Python嵌入式包进行项目迁移。步骤包括下载和修改嵌入式解释器、安装模块(使用pip或复制Lib目录)、处理同级包扫描问题,特别是对于有多个模块的项目,需要创建.pth文件来修正模块查找路径。此外,文章还讨论了Django在嵌入式环境下的模块找不到问题及其解决方案。
摘要由CSDN通过智能技术生成

python嵌入式解释器+django实现完整迁移

当一个项目比较复杂的时候,使用pyinstaller等工具无法将项目打包的时候,可以考虑将源代码+解释器一起进行拷贝。

一、下载嵌入式包

1、首先我们打开官网来到最新的官网页面Welcome to Python.org

备注:下载的页面排版更新了,如果你按老教程会找不到在什么地方

2、选择 Downloads 标签页,然后选择 Windows,点击

3、在屏幕中寻找带 embeddable 字眼的安装包,版本不受限制,不过最好和本地现有的安装版本一致

(新手不要盲目安装3.10 +的版本,许多库都还没跟上最新版本,可能会导致少数库用不了)

4、解压下载下来的文件,并将文件夹的名称改为”python“,去掉后面的版本号等配置

5、在嵌入式版目录里找到后缀为“._pth”文件(文件名视Python版本而定,例如这里是python38._pth),打开并将“import site”取消注释,保存

二、安装模块

方式1:安装pip,使用pip命令进行安装

1、修改python解释器的文件夹名称为”python“,去掉后面的版本号等后缀

2、下载git-pip.py文件

        前往https://bootstrap.pypa.io/get-pip.py,然后将所有内容拷贝下来,保存到同名的文件中

3、执行get-pip.py

        在python解释器目录的标题栏输入cmd

        在cmd中执行 python get-pip.py 进行安装

        目录中多出两个文件夹Lib和Scripts

4、目录说明

方式2:Lib目录复制到嵌入式版目录

        把项目venv下(或者解释器下)的Lib目录复制到嵌入式版目录

三、启用同级包(模块)扫描

到此为止,如果你的项目足够简单,例如是只有一个文件构成Hello World,那双击启动脚本就已经可以正常运行了。

如果你的项目稍微复杂一点点,分了模块(模块和启动的文件在同级目录下)。那会遇到Python报找不到模块的错误。

例如,这里写了个测试脚本,test目录的run.py文件中,import了mod.py文件。

再例如,django启动的时候找不到创建的app文件模块,用整合后的嵌入式版Python无法启动,抛出“ModuleNotFoundError”。

产生此问题的原因:Python的官方文档(https://docs.python.org/3.8/using/windows.html#windows-embeddable)上其实有这么一行文本。直接说结论的话,嵌入式版不受环境变量的影响,安装版和嵌入式版本在加载依赖的方式上会有些差别。相比嵌入式版本,安装版会额外去扫描入口文件(也就是被运行的文件)所在的目录。

解决方法:在嵌入式版“Lib\site-packages”下新建一个文件,以“.pth”为扩展名,输入以下内容并保存:

import sys;import os;sys.path.insert(0,os.path.dirname(sys.argv[0]));

例如这里命名为了“start_path.pth”

四、python环境安装完毕

1、目录说明

2、运行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值