精华内容
下载资源
问答
  • Python项目打包发布方法

    万次阅读 多人点赞 2018-12-29 11:56:07
    目前python打包工具有多个,目前比较好用的为pyinstaller,该工具可以支持在window和linux下使用。 在windows下,大小为几十K的源文件打包成exe文件,可能为几十兆,原因是把程序所引用的库文件也一起打包在一起。...

     

          目前python打包工具有多个,目前比较好用的为pyinstaller,该工具可以支持在window和linux下使用。

          在windows下,大小为几十K的源文件打包成exe文件,可能为几十兆,原因是把程序所引用的库文件也一起打包在一起。

          如下以windows系统为例,分2个步骤,演示如何使用pyinstaller打包。

          第1步:安装pyinstaller

          安装pyinstaller之前首先必须有pip,如果还没有安装,请用度娘搜索“python安装pip”,资源丰富,在此不再介绍,使用pip安装pyinstaller的命令如下:

    pip install pyinstaller

          命令执行的截图如下,直至安装完毕,我仅截取了前面部分打印信息。

          第2步:打包exe文件

          如果是打包一个py文件,可以使用“pyinstaller -F 待打包文件名”进行打包,在命令执行完毕后,会在dist目录下生成一个“待打包文件名.exe”的文件。如果不使用“-F”参数,则会在dist目录下生成一个“待打包文件名”的文件夹,该文件夹下包含“待打包文件.exe”,但是要整个文件夹在一起才能正常工作,因为这个文件夹的功能相当于使用“-F”时的一个“待打包文件.exe”。

          使用加F参数打包成一个exe文件的操作截图如下:

           使用“F”强制打包参数,有时会导致软件功能运行不正常,仅限于小的范例使用,如果项目有多个py文件,则建议别再使用“F”参数。

          如果项目有多个文件,打包时可以把多个文件列出来,中间用空格隔开即可。

          如果需要修改默认图标为指定图标,则使用“-i  图标文件名”来实现。

          如下为使用多个py文件和图标的打包截图。

          pyinstaller的参数见下表,大家可以在需要时参考。

    参数 参数全称 参数说明

    -F

    –onefile

    打包成单个可执行文件,如果你的代码都写在一个.py文件,则可以使用,如果是多个.py文件,建议不要使用。

    -D

    –onedir

    打包多个文件,在dist中生成很多依赖文件,适合以框架形式编写工具代码,该方式代码较易于维护。

    -K –tk 在部署时包含 TCL/TK。
    -a –ascii 不包含编码.在支持Unicode的python版本上默认包含所有的编码。
    -d –debug

    产生debug版本的可执行文件

    -w –windowed,–noconsole 使用Windows子系统执行.当程序启动的时候不会打开命令行(仅对Windows有效)
    -c –nowindowed,–console

    使用控制台子系统执行(默认)(只对Windows有效)

    pyinstaller -c  xxxx.py

    pyinstaller xxxx.py --console

    -s –strip

    可执行文件和共享库将run through strip。

    注意Cygwin的strip可能使普通的win32 Dll无法使用

    -X –upx 如果有UPX安装(执行Configure.py时检测),则会压缩执行文件(Windows系统中的DLL也会)
    -o DIR –out=DIR 指定spec文件的生成目录,如果没有指定,而且当前目录是PyInstaller的根目录,会自动创建一个用于输出(spec和生成的可执行文件)的目录.如果没有指定,而当前目录不是PyInstaller的根目录,则会输出到当前的目录下。
    -p DIR –path=DIR

    设置导入路径(和使用PYTHONPATH效果相似)。

    可以用路径分割符(Windows使用分号,Linux使用冒号)分割,指定多个目录.也可以使用多个-p参数来设置多个导入路径,让pyinstaller自己去找程序需要的资源

    -i <FILE.ICO> –icon=<FILE.ICO> 将file.ico添加为可执行文件的资源(只对Windows系统有效),改变程序的图标  pyinstaller -i  ico路径 xxxxx.py
    –i <FILE.EXE, N> –icon=<FILE.EXE, N>

    将file.exe的第n个图标添加为可执行文件的资源(只对Windows系统有效)

    -v FILE –version=FILE 将verfile作为可执行文件的版本资源(只对Windows系统有效)
    -n NAME –name=NAME

    可选的项目(产生的spec的)名字.如果省略,第一个脚本的主文件名将作为spec的名字

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    如果你喜欢这篇文章,别忘了点赞和评论哦!

    展开全文
  • python项目练习

    千次阅读 2018-06-06 14:33:48
    python项目 练习一:即时标记 python项目 练习二:画幅好画 python项目 练习三:万能的XML python项目 练习四:新闻聚合 python项目 练习五:虚拟茶话会 python项目 练习六:使用CGI进行远程编辑 python项目 ...

    python项目
    练习一:即时标记 python项目
    练习二:画幅好画 python项目
    练习三:万能的XML python项目
    练习四:新闻聚合 python项目
    练习五:虚拟茶话会 python项目
    练习六:使用CGI进行远程编辑 python项目
    练习七:自定义公告板 python项目
    练习八:使用XML-RPC进行远程文件共享 python项目
    练习九:文件共享2-GUI版本 python项目
    练习十:DIY街机游戏


    我的ubuntu上的python既有2.x版本,也有3.x版本。我想随时切换版本,可以进行如下操作:

    sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
    sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150

    然后要切换python版本时

    sudo update-alternatives --config python

    会出现系统中已有的python版本,输入想使用版本的编号即可

    展开全文
  • Python项目:学生信息管理系统(完整版)

    万次阅读 多人点赞 2018-06-06 19:11:10
    本文是基于上一篇(python项目:学生信息管理系统(初版) )进行了完善,并添加了新的功能。 主要包括有: 完善部分:输入错误;无数据查询等异常错误 新的功能:文件的操作:文件的读写,其中重点是对文本字符...

            本文是基于上一篇(python项目:学生信息管理系统(初版) )进行了完善,并添加了新的功能。

    主要包括有:

                完善部分:输入错误;无数据查询等异常错误

                新的功能:文件的操作:文件的读写,其中重点是对文本字符串的详细解析(关于整个解析拆解和重组详见代码,以及添加了注释)

    完整代码 https://github.com/hilqiqi0/sample/blob/master/student_info.py

    学生信息管理系统(完整版)

     

    学生信息管理项目,要求带操作界面,并完成每项操作:
    +----------------------+
    | 1)添加学生信息             |
    | 2)显示所有学生的信息          |
    | 3)删除学生信息             |
    | 4)修改学生信息             |
    | 5)按学生成绩高-低显示学生信息     |
    | 6)按学生成绩低-高显示学生信息     |
    | 7)按学生年龄高-低显示学生信息     |
    | 8)按学生年龄低-高显示学生信息     |
    | 9)保存学生信息到文件(students.txt)           |
    | 10)从文件中读取数据(students.txt)           |
    | 退出:其他任意按键<回车>                             |

    +----------------------+   

    详细代码如下:

    # student_info.py
    # 学生信息管理项目,要求带操作界面,并完成每项操作:
    # +----------------------+
    # | 1)添加学生信息                      |
    # | 2)显示所有学生的信息                 |
    # | 3)删除学生信息                      |
    # | 4)修改学生信息                      |
    # | 5)按学生成绩高-低显示学生信息         |
    # | 6)按学生成绩低-高显示学生信息         |
    # | 7)按学生年龄高-低显示学生信息         |
    # | 8)按学生年龄低-高显示学生信息         |
    # | 9)保存学生信息到文件(students.txt)      |
    # | 10)从文件中读取数据(students.txt)      |
    # | 退出:其他任意按键<回车>                 |
    # +----------------------+                        |
    
    
    def meun():
        menu_info = '''+----------------------+
    | 1)添加学生信息                           |
    | 2)显示所有学生的信息                     |
    | 3)删除学生信息                           |
    | 4)修改学生信息                           |
    | 5)按学生成绩高-低显示学生信息           |
    | 6)按学生成绩低-高显示学生信息           |
    | 7)按学生年龄高-低显示学生信息           |
    | 8)按学生年龄低-高显示学生信息           |
    | 9)保存学生信息到文件(students.txt)      |
    | 10)从文件中读取数据(students.txt)      |
    | 退出:其他任意按键<回车>                 |
    +----------------------+
    '''
        print(menu_info)
    
    
    # 以下二个函数用于sorted排序, key的表达式函数
    def get_age(*l):
        for x in l:
            return x.get("age")
    def get_score(*l):
        for x in l:
            return x.get("score")
            
    # 1)添加学生信息
    def add_student_info():
        L = []
        while True:
            n = input("请输入名字:")
            if not n:  # 名字为空 跳出循环
                break
            try:
                a = int(input("请输入年龄:"))
                s = int(input("请输入成绩:"))
            except:
                print("输入无效,不是整形数值....重新录入信息")
                continue
            info = {"name":n,"age":a,"score":s}
            L.append(info)
        print("学生信息录入完毕!!!")
        return L
    
    # 2)显示所有学生的信息
    def show_student_info(student_info):
        if not student_info:
            print("无数据信息.....")
            return
        print("名字".center(8),"年龄".center(4),"成绩".center(4))
        for info in student_info:
            print(info.get("name").center(10),str(info.get("age")).center(4),str(info.get("score")).center(4))
    
    # 3)删除学生信息
    def del_student_info(student_info,del_name = ''):
        if not del_name:
            del_name = input("请输入删除的学生姓名:")
        for info in student_info:
            if del_name == info.get("name"):
                return info
        raise IndexError("学生信息不匹配,没有找到%s" %del_name)
    
    # 4)修改学生信息
    def mod_student_info(student_info):
        mod_name = input("请输入修改的学生姓名:")
        for info in student_info:
            if mod_name == info.get("name"):
                a = int(input("请输入年龄:"))
                s = int(input("请输入成绩:"))
                info = {"name":mod_name,"age":a,"score":s}
                return info
        raise IndexError("学生信息不匹配,没有找到%s" %mod_name)
    
    # 5)按学生成绩高-低显示学生信息
    def score_reduce(student_info):
        print("按学生成绩高-低显示")
        mit = sorted(student_info ,key = get_score,reverse = True)
        show_student_info(mit)
    
    # 6)按学生成绩低-高显示学生信息
    def score_rise(student_info):
        print("按学生成绩低-高显示")
        mit = sorted(student_info ,key = get_score)
        show_student_info(mit)
    
    # 7)按学生年龄高-低显示学生信息
    def age_reduce(student_info):   
        print("按学生年龄高-低显示:")
        mit = sorted(student_info ,key = get_age,reverse = True)
        show_student_info(mit)
    
    # 8)按学生年龄低-高显示学生信息
    def age_rise(student_info): 
        print("按学生年龄低-高显示:")
        mit = sorted(student_info ,key = get_age)
        show_student_info(mit)
    
    # 9)保存学生信息到文件(students.txt)
    def save_info(student_info):
        try:
            students_txt = open("students.txt","w")     # 以写模式打开,并清空文件内容
        except Exception as e:
            students_txt = open("students.txt", "x")    # 文件不存在,创建文件并打开
        for info in student_info:
            students_txt.write(str(info)+"\n")          # 按行存储,添加换行符
        students_txt.close()
    
    # 10)从文件中读取数据(students.txt) 
    def read_info():
        old_info = []
        try:
            students_txt = open("students.txt")
        except:
            print("暂未保存数据信息")                       # 打开失败,文件不存在说明没有数据保存
            return
        while True:
            info = students_txt.readline()
            if not info:
                break
            # print(info)
            info = info.rstrip()    # 去掉换行符
            # print(info)
            info = info[1:-1]       # 去掉{}
            # print(info)
            student_dict = {}       # 单个学生字典信息
            for x in info.split(","):   # 以,为间隔拆分
                # print(x)
                key_value = []      # 开辟空间,key_value[0]存key,key_value[0]存value
                for k in x.split(":"):  # 以:为间隔拆分
                    k = k.strip()       # 去掉首尾空字符
                    # print(k)
                    if k[0] == k[-1] and len(k) > 2:        # 判断是字符串还是整数
                        key_value.append(k[1:-1])           # 去掉 首尾的'
                    else:
                        key_value.append(int(k))
                    # print(key_value)
                student_dict[key_value[0]] = key_value[1]   # 学生信息添加
            # print(student_dict)
            old_info.append(student_dict)   # 所有学生信息汇总
        students_txt.close()  
        return old_info   
    
    def main():
        student_info = []
        while True:
            # print(student_info)
            meun()
            number = input("请输入选项:")
            if number == '1':
                student_info = add_student_info()
            elif number == '2':
                show_student_info(student_info)
            elif number == '3':
                try:
                    student_info.remove(del_student_info(student_info))
                except Exception as e:
                    # 学生姓名不匹配
                    print(e)            
            elif number == '4':
                try:                
                    student = mod_student_info(student_info)
                except Exception as e:
                    # 学生姓名不匹配
                    print(e)
                else:
                    # 首先按照根据输入信息的名字,从列表中删除该生信息,然后重新添加该学生最新信息
                    student_info.remove(del_student_info(student_info,del_name = student.get("name")))  
                    student_info.append(student)
            elif number == '5':
                score_reduce(student_info)
            elif number == '6':
                score_rise(student_info)
            elif number == '7':
                age_reduce(student_info)
            elif number == '8':
                age_rise(student_info)
            elif number == '9':
                save_info(student_info)
            elif number == '10':
                student_info = read_info()
            else:
                break
            input("回车显示菜单")
    
    main()
    

     

     

     

     

    展开全文
  • Python项目管理

    千次阅读 2015-12-27 11:45:40
    那么当一台机器上有多个python项目,且这些python项目各自有不同的依赖,不想互相干扰时怎么办呢? 官方做法是使用Virtual Environments将每个项目互相隔离开。一般情况下,我们使用python解释器运行python脚本或...

    Virtual Environments
    首先Python似乎没有类似Maven/Ant这样的项目管理工具。那么当一台机器上有多个python项目,且这些python项目各自有不同的依赖,不想互相干扰时怎么办呢?虚环境Virtual Environments可以解决这个问题。
    一般情况下,我们使用python解释器运行python脚本或module:

    >python myScript.py

    运行的目录就是安装的python解释器python.exe所在的目录。而Virtual Environments就是给每个项目都生成一个项目独有的目录。这个目录里包含python解释器,python标准类库和其他各式各样的必要文件。这样每个项目就可以使用不同的解释器和类库,且互不干扰。
    如果使用IDE,IDE会自动安装虚环境。创建过程也很简单。首先找到pyvenv.py所在的目录,这个文件通常在安装目录的自目录\Tools\scripts下。这是一个生成Virtual Environments的工具。然后运行:

    >pyvenv tutorial-env

    运行后就会生成一个名为“tutorial-env”的目录。找到这个目录,可以发现正如官网所说,这个目录包含运行python项目所必须的一切文件。使用在各自Virtual Environments目录里包含的解释器来运行特定的python项目就可以了。同时,对于那些每个项目使用的特定的依赖(packages或module),则加入到各自Virtual Environments目录的类库子目录中就可以了。这里需要注意的是。创建完Virtual Environments后,还需要激活。做法很简单,在上例tutorial-env目录下执行命令即可:

    >tutorial-env/Scripts/activate

    PIP
    PIP是官方提供的安装python第三方类库(packages/module)的工具。它可以去PPI(python packages index)查找或下载第三方类库。网址是:https://pypi.python.org/pypi
    找到上例Virtual Environments目录下的pip.exe并运行:

    >pip install lib_name

    即可安装,其他功能请自行查看手册。如果是在python的安装目录下运行pip,则类库可以被非Virtual Environments的所有项目使用。PIP安装的其实是package。

    Requirements.txt
    在Virtual Environments目录下运行:

    >pip freeze > requirements.txt

    可以产生一个当前项目所有依赖类库及其版本的list文件,文件名就是requirements.txt(当然也可以用别的名字)。文件内容大致如下:

    novas3.1.1.3
    numpy1.9.2
    requests==2.7.0

    使用requirements.txt的好处就是:
    The requirements.txt can then be committed to version control and shipped as part of an application. Users can then install all the necessary packages with “install -r“:

    >pip install -r requirements.txt

    这样就可以方便的管理项目依赖了。如果不使用requirements.txt,直接使用version control存储Virtual Environments目录,其他程序员直接下载该目录就可以开始项目开发的做法也可以。

    setup.py
    主要功能就是将modules打包。生成的包被分发后,就可以很容易地被import并使用了。如果不使用这种方式,而是直接分发源代码,则import时需要明确知道源码的目录结构等才能import,非常麻烦。

    展开全文
  • 完整的python项目实例-python完整项目

    千次阅读 2020-10-29 14:27:50
    一个完整的python项目需要具备什么? 1. 需求功能的实现: 实现思路+现有框架+基础编程 2. 项目日志: logging模块(调试性的日志和记录性的日志) 参考:python官方文档中的howto-logging.pdf和library.pdf中的...
  • 给大家带来的一篇关于Python案例相关的电子书资源,介绍了关于Python项目开发、Python案例方面的内容,本书是由吉林大学出版社出版,格式为PDF,资源大小99.1 MB,明日科技编写,目前豆瓣、亚马逊、当当、京东等...
  • python项目命名规范

    千次阅读 2020-02-16 15:58:46
    python项目命名规范 类型 公有/外部成员 私有/内部成员 项目(project) My_project 模块(module) my_naming_convention _my_naming_convention 包(package) my_naming_convention 类(class) ...
  • Flask打包部署python项目

    千次阅读 2019-08-30 09:40:00
    由于项目要远程调用python算法,所以项目部署的同时,也要将python项目同时打包部署到服务器。由于目前领导还没有把服务器地址给我,我先用mac本地玩弄一下。 2. python环境安装 ①. 下载安装包 ...
  • python项目目录结构

    千次阅读 2020-02-16 16:21:01
    python 项目目录结构 目录组织方式 假设你的项目名为foo, 我比较建议的最方便快捷目录结构这样就足够了: Foo/ |-- bin/ | |-- foo | |-- foo/ | |-- tests/ | | |-- init.py | | |-- test_main.py | | | |-- init.py...
  • PyCharm如何导入python项目

    千次阅读 2019-07-16 12:25:00
    Pycharm导入python项目 进入PyCharm后,点击File→Open,然后在弹窗中选择需要导入项目的文件夹; 打开了python项目后,需要配置该项目对应的python才可以正常运行; 配置步骤:File→settings 在设置弹窗中选择...
  • Python项目部署方法整理

    万次阅读 2018-01-15 15:34:34
    最近因工作需要,研究了一款Python项目。作为java程序猿,习惯于java项目一个包就可以在任何平台上运行,因此在研究该项目伊始,本着也能够将Python项目打包部署的期望,研究了下python项目部署方法。 一般情况,...
  • 服务器上运行Python项目

    万次阅读 2018-09-07 09:19:03
    直接在笔记本里跑Python项目实在是太慢了,师兄给了实验室服务器一个节点,安排上了!  首先下载了师兄给的bitvise安装包,其实我之前用的是Xshell5,我也不造有什么区别,就又安装了一个。对比之后我发现bitvise...
  • Python项目开发案例集锦及配套代码

    万次阅读 多人点赞 2019-11-27 20:57:31
    Python项目开发案例集锦及配套代码,有需要的自己下载: 链接:https://pan.baidu.com/s/1JTP5WNgtCcjmIURqk2T_4A 提取码:qvz1
  • IntelliJ IDEA 编辑python项目,如何更换python环境(更换venv或Virtualenv环境 Virtualenv 和 venv 区别为 ,Virtualenv需要安装,venv 是python3自带的组件不需要安装。推荐使用venv 配置venv环境 $ python3 -m ...
  • Python 技术篇-将python项目打包成exe独立运行程序,pyinstaller库打包python代码实例演示。 cmd 进入要编译的python文件所在的文件夹, 然后pyinstaller -F hello.py就好了,hello.py就是我要打包的文件。 常用参数...
  • 在github上拉取python项目的时候,出现的问题。愿意大概就是sdk不能启动,遇到了问题。 原因:python项目建立的时候都有建立虚拟环境,所以不同机器的虚拟环境要求不一样,导致python.exe启动不起来。 解决方案:...
  • Eclipse:eclipse导入Python项目

    千次阅读 2018-10-14 14:44:58
    eclipse导入Python项目 在Eclipse导入Java项目,一般操作都是,打开eclipse的file--import 然后选择general--Exiting projects into Workspace 选择对应的Java路径即可 但是eclipse导入python 项目的时候...
  • Github上有趣的100个python项目

    万次阅读 2020-09-17 09:53:46
    Github上面有很多有趣的python项目,包括软件、库、教程、资源等。这次收集了其中比较受欢迎的100个,供大家参考。 资料来源:https://github.com/521xueweihan/HelloGitHub 项目链接:...
  • 使用 Docker 打包 Python 项目

    千次阅读 2019-04-05 12:47:13
    1. 获取 Python 的镜像文件 项目的封装可以建立在已有镜像的基础上,在 Ubuntu 中可通过 docker pull python:3.6.8-...在 Python 项目的根目录新建 Dockerfile 文件,在 Dockerfile 文件中写入下面内容: FROM pyt...
  • 新电脑安装IDEA后,建好python项目,在导包过程中发生了以下的错误情况~ 那我们经过观察,发现其实IDEA已经给我们提供好了解决的方案了: 快捷键:win+R 输入cmd 进入命令窗口 先使用命令查看已下pip的版本(pip 是 ...
  • Python学习(13):Python项目组织结构

    千次阅读 2018-06-07 14:08:30
    一、理解Python项目的组织结构 二、Python中导入其他模块 首先创建两个模块文件Python1.py和Python2.py作为被导入模块。 下面是在Python3.py模块中进行导入测试: 1.import引入模块 import只能引入模块,不...
  • Linux系统部署Python项目

    千次阅读 2019-01-05 12:26:03
    一、LNM+Python Djiango +uwsgi +redis 部署Python项目 (一)导入项目以及项目文件修改 上传压缩文件以及数据库到/opt (注意要把数据库建成sql文件上传) 然后解压上传项目文件 进入核心目录(两次cd mybbs) 注意:...
  • 我们知道对于python项目来说,我们只需要在我们的snapcraft.yaml中指定plugin为python它即可为python项目下载在snapcraft中指定的python的版本。但是对于有一些项目来说,我们的开发者可能需要一个特定的python的...
  • python项目打包虚拟环境

    千次阅读 2019-03-04 20:12:28
    python项目打包时,需要将虚拟环境与python自身安装路径下的lib包整合在一起,将如下内容保存为packvenv.sh文件,修改PYTHON_PATH(python的安装路径)以及VENV_PATH(虚拟环境的全路径)为自己的目录,然后给文件...
  • Python项目打包成wheel笔记

    千次阅读 2019-05-08 19:38:18
    详情参考:... Python项目可以使用命名 pip install 包名 安装Python包,可以将自己的Python项目打包,并且可以发布 安装必要的Python包 pip install setuptools pip install wheel 以下是...
  • python项目批量引入需要的类库

    千次阅读 2018-11-27 19:13:09
    转载请注明出处:python项目批量引入需要的类库 我们在之前的文章中已经学习过关于python的模块 python模块 有一种应用场景,在复用项目的时候,会出现模块未安装的情况导致报错。 那么python项目的怎么进行模块的...
  • 当新建或者打开Python项目时,如果出现No Python interpreter configured for the project 的提示,意思是没有解析器,可能是安装Python之后,没有添加系统环境变量的原因,或者是误操作导致Pycharm找不到解析器。...
  • linux 下部署Python项目

    千次阅读 2019-02-18 15:32:05
    linux 下部署Python项目 笔记笔记笔记。。不要看项目,(手动捂脸)我自己的一个记录而已 目录 一、启用ROOT账户及密码和ssh 二、安装screen实现不掉线运行程序 三、部署项目 四、部署项目环境 五、善后 You ...
  • python项目结构及相关文件编写

    千次阅读 2018-12-11 23:04:26
    二、python项目结构1、python项目组合部分 python项目主要包括以下几部分: bin: 可执行文件; docs: 项目文档; 项目名: 这里就是具体的项目代码; tests: 测试代码; README.md: 项目介绍; req...
  • Python项目对接CAS

    千次阅读 2016-11-19 15:27:24
    Python项目对接CAS方案: https://github.com/cameronbwhite/Flask-CAS https://github.com/cameronbwhite/flask-cas-extension-demo/

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 480,665
精华内容 192,266
关键字:

python项目

python 订阅