使用过anaconda环境下打包py文件的一点感悟,使用的是pyinstaller+anaconda环境下打包py文件
打包: pyinstaller -F -w -i logo.ico xxxx.py
-F:强制打包
-w:不带后台命令窗口
-i: 使用logo图标的地址
需要打包的文件
遇到的问题:
1.首先对于使用anaconda打包py文件是存在问题的;
1)打包出来的exe会很大,会打包很多关联库;
2)而其中的一些关联库是没有用,而导入这些库会拖慢程序运行的效率。
解决:使用虚拟环境进行打包
1.使用pipenv
虚拟环境的应用可以用pipenv
安装pipenv :pip install pipenv
使用pipenv建立虚拟环境,通过命令行:pipenv install 建立虚拟环境;
建立虚拟环境有主意的是:建立的虚拟环境是在一个项目文件下的路径上建立的
3.建立完成后可以通过pipenv shell 进入虚拟环境
4.进入后可以通过pip install 包 对依赖的第三方库包进行安装
pipenv install 包是对库包进行配置导入绑定到配置文件pipfile中
最后可以在虚拟环境中安装pyinstaller来对需要打包的文件进行打包;
2.使用virtualenv
1.安装virtualenv :pip install virtualenv
2.在相应的项目目录下面建立虚拟环境:cmd 中virtualenv+venv(命名)
virtualenv --no-site-packages --python=2.7 env
--no-site-packages:
默认情况下,虚拟环境会依赖系统环境中的site packages,就是说系统中已经安装好的第三方package也会安装在虚拟环境中,如果不想依赖这些package,那么可以加上参数 --no-site-packages建立虚拟环境
3.激活环境:项目路径下;venv\scripts\activate
4.安装库pip install xxxx
批量安装pip install -r xxx.txt
打包安装遇到的问题分享:
1.在进行打包的时候遇到报错:
Fatal error: PyInstaller does not include a pre-compiled bootloader for your platform.https://pyinstaller.readthedocs.io/en/stable/bootloader-building.html
查阅资料后发现可以通过降级实现,后来我发现造成这个问题主要是后台的win10防火墙吧我虚拟环境中的pyinstaller的pyinstaller\PyInstaller\bootloader\Windows-32bit中的runw.exe删掉了,可以通过原有python库中已有的库中去复制粘贴到相应的路径下,防火墙应该时删掉了某些重要的东西。
但是我发现后来打包中一旦带有
2.打包后发现的一些问题:numpy: No module named ‘numpy.random common'
可以发现使用numpy下,pandas的下引用的numpy导入失败,经查阅这可能是版本问题造成的
可以先卸载原有的版本pip uninstall numpy
改为安装pip install numpy==1.16.2
3.distutils not included with latest virtualenv (16.4.0) #4064
打包出来可能会发现缺少导入包distutils,因为distutils是内置库,无法pip install 安装,并且virtualenv16.4以后就不再自带库distutils库了。
所以可以通过降低virtualenv解决这个问题;
总结
以上所述是小编给大家介绍的使用虚拟环境打包python为exe 文件的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
python 的虚拟环境可以为一个 python 项目提供独立的解释环境、依赖包等资源,既能够很好的隔离不同项目使用不同 python 版本带来的冲突,而且还能方便项目的发布。 virtualenv virtualenv可用于创建独立的 Python 环境,它会创建一个包含项目所必须要的执行文件。 安装 virtualenv $ pip install virtualenv 配置 pip 安装第
本文向大家介绍Python使用Anaconda制作虚拟环境,包括了Python使用Anaconda制作虚拟环境的使用技巧和注意事项,需要的朋友参考一下 示例 virtualenvAnaconda的强大替代品-跨平台的pip类软件包管理器,捆绑了可快速创建和删除虚拟环境的功能。安装Anaconda之后,以下是一些入门指南: 创建环境 在<envname>您的虚拟环境中使用任意名称,并且<versio
这份教程是帮助你安装和使用 Python 的包 本指南会告诉你如何安装和使用必要的工具。值得注意的是 Python 可以做许多许多的事情,至于你如何去安装和管理你的依赖可能会根据你项目的不同而不同。这份指南更多是开发和部署网络服务(包括 web 应用),但是这份指南同样适用于帮助你管理任何项目的开发和测试环境。 注意:这份指南是在 Python 3 版本下完成的,如果你由于不可抗拒的原因仍然在使用
我主要用python编程,并且有一些虚拟环境方面的经验。我是新的软件,并开始寻找docker来运行我的代码。我想了解它的功能和工作原理。 据我所知,docker容器就像虚拟环境,在执行时运行一组指令,可以将其中包含的所有内容视为一个实体(因此它或其他内容不会相互制约?)。当我读到更多关于容器的内容时,它们听起来非常完美,可以消除对虚拟环境的任何需求,但仍然不确定。如果能澄清一下,我将不胜感激,因为
本文向大家介绍Linux安装Python虚拟环境virtualenv的方法,包括了Linux安装Python虚拟环境virtualenv的方法的使用技巧和注意事项,需要的朋友参考一下 1、安装virtulenv、virtulenvwrapper包 pip install virtualenv virtualenvwrapper 2、virtualenvwrapper是virtualenv的扩展工具
我已经创建了一个Python虚拟环境,并通过执行以下操作来激活它: 将提示转换为: 现在,每当我运行一个python包或尝试安装一个时,系统似乎忽略了它在虚拟环境中的事实,并在系统范围内执行操作: 当我尝试安装不在系统上的新软件包时,也会发生同样的情况;它将它们安装到系统文件(即/usr/bin)而不是虚拟环境中。 我的虚拟环境怎么了?如何让它忽略系统文件并在环境中执行所有操作? 我看过这个问题,