打包django碰到的问题

本文解决了Django升级至1.4版本后使用py2exe打包时遇到的问题,包括找不到django.conf.project_template错误及网络连接错误gaierror。文中还介绍了如何通过重定向将运行时的日志输出到文件,以及如何修改打包设置避免弹出dos窗口。
django升到1.4后,在py2exe打包过程报找不到django.conf.project_template的错误。
解决办法就是在project_template下,加一个__init__.py文就可以了。

运行过程中出现错误:

gaierror: [Errno 10093] getaddrinfo failed

解决办法,不要"winsock.dll"和"ws2_32.dll"复制到dist目录

另外可以通过重定向,将运行中的log输出到文件中:
在启动cherrypy前加入这段代码

sys.stderr = open('error.log', 'w')
sys.stdout = open('output.log', 'w')


将setup.py中的console改为windows,运行的时候就不会产生dos窗口了。

console=[{'script':'pyserver.py','icon_resources':[(0x0001,'7.ico')]}],


windows=[{'script':'pyserver.py','icon_resources':[(0x0001,'7.ico')]}],
### 打包Django项目为RPM #### 准备工作 为了将Python编写的Django项目打包成适用于RedHat系列系统的RPM安装包,前期准备工作至关重要。确保项目结构合理并遵循Python的标准分发方式[^3]。 #### 创建`setup.py` 构建任何Python项目的前提条件之一是拥有一个有效的 `setup.py` 文件,该文件定义了有关此软件包的重要元数据以及其依赖关系。对于Django应用而言,这通常位于项目的根目录下: ```python from setuptools import setup, find_packages setup( name="your-django-app", version="0.1", packages=find_packages(), install_requires=[ 'Django>=3.2,<4', # 添加其他必要的库... ], entry_points={ 'console_scripts': [ 'manage=your_django_app.manage:main', # 如果适用的话 ] }, ) ``` #### 构建源码发布版 利用上述提到的 `setup.py` 文件,可以通过运行命令来创建源代码分布版本(source distribution),这是后续生成 RPM 的基础: ```bash python setup.py sdist ``` 需要注意的是,在某些情况下直接使用 `python setup.py sdist upload -r local` 可能会遇到特定环境下的兼容性问题[^5];因此建议先测试本地构建过程再考虑上传至仓库。 #### 使用rpmbuild工具制作RPM包 一旦有了 `.tar.gz` 形式的源码包之后,则可借助于 Linux 下广泛使用的 rpmbuild 工具来进行最终的 RPM 制作流程。具体操作如下所示: - **准备SPEC文件**: SPEC 是描述如何组装二进制程序的关键文档,其中包含了关于目标平台上的安装位置、权限设置等细节说明; - **调用rpmbuild指令**: ```bash rpmbuild -ta your-django-app.tar.gz --define "_topdir $(pwd)/rpmbuild" ``` 通过这种方式能够有效地把 Django 应用转换成为适合 Red Hat 类操作系统使用的 RPM 安装包形式。 #### 部署到生产环境 完成以上步骤后得到的 RPM 包可以直接用于部署目的。考虑到实际应用场景中的需求差异较大,可能还需要额外调整配置项以适应具体的服务器架构。例如,如果采用 uWSGI 和 Nginx 组合提供 Web 服务,则应参照相应指南正确设定 WSGI 模块路径及其他参数[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值