如果希望使用者的使用尽可能的简单,则可以创建多个构建发布。...package_dir是个字典,其中的key是要安装的包名,如果为空,则表明是root package,value就是该包(key)对应的源码树的目录。...inplace=1 其他例子和注意事项,可以参阅https://docs.python.org/2/distutils/configfile.html四、源码发布之前已经提到过,使用sdist命令可以创建包的源码发布...构建发布是为了方便安装者而创建的,比如对于基于RPM的Linux用户来说,它可以是二进制RPM包,而对于Windows用户来说,它可以是一个可执行的安装文件等。...即使模块没有放到包中,也可以通过向setup脚本声明root包的方法来发布,与实际的包不同,根目录下可以没有__init__.py文件。
Cloneable接口与Serializable接口都是定义接口而没有任何的方法。Cloneable可以实现对象的克隆复制,Serializable主要是对象序列化的接口定义。...很多时候我们涉及到对象的复制,我们不可能都去使用setter去实现,这样编写代码的效率太低。JDK提供的Cloneable接口正是为了解决对象复制的问题而存在。...Cloneable结合Serializable接口可以实现JVM对象的深度复制。...see java.lang.Object#clone() * @since JDK1.0 */ public interface Cloneable { } Cloneable接口是一个空接口...1L,一个是随机生成一个不重复的 long 类型数据(实际上是使用 JDK 工具生成) // 如果没有特殊需求,就是用默认的 1L 就可以 static final long serialVersionUID
1 为了可以使用maven 创建可执行的jar文件 ,首先需要再pom.xml 加入如下的依赖。...spring-boot-maven-plugin 2 1、win+r 打开命令行窗口 2、切换到主pom文件所在位置...3、执行相应的命令: $ mvn package [INFO] Scanning for projects......C:\Users\wo> cd cd C:\框架研究\demo\targetC:\框架研究\demo\target 文件名、目录名或卷标语法不正确。...C:\Users\wo>cd C:\框架研究\demo\targetC:\框架研究\demo\target 文件名、目录名或卷标语法不正确。
当不小心按下删除键,或是经过一番清理后发现重要文件不见了,那种慌乱和焦虑的感觉相信大家都有体会过。不过,好消息是,删除的文件并不一定真的“永远消失”了。实际上,有很多方法可以帮助我们找回误删的文件。...首先回答一下问题“删除的文件还能回来吗?”大部分情况,是能。为什么呢?这个需要说一下文件删除的基本原理。当你删除一个文件时,它实际上并没有立即从硬盘中消失,而是被移到了一个“回收站”或类似的地方。...即使你清空了回收站,文件也只是被标记为可覆盖的状态,但数据仍然保存在硬盘上,直到新的数据覆盖它。所以,在删除的文件被覆盖之前,文件是可以恢复回来的。...重要说明:预防胜于治疗虽然我们可以通过多种方法恢复删除的文件,但是数据恢复不是万能的,无法保证任何情况都可以正确地把文件恢复回来。...所以,保护数据安全最好的办法还是预防文件丢失:以下是一些建议:定期备份:养成定期备份的重要文件的习惯,无论是使用外部硬盘还是云存储,都可以有效防止文件丢失。
(3) 执行模块的代码来创建其所有定义的对象:模块文件中的所有语句会依次执行,从头至尾,而此步骤中任何对变量名的赋值运算,都会产生所得到的模块文件的属性。 ...导入时可以执行:import package1.mod1 即可 包导入语句的路径内的每个目录内都必须有__init__.py文件。...__init__.py可包含python代码,但通常为空,仅用于扮演包初始化的挂钩、替目录产生模块命名空间以及使用目录导入时实现from * 行为的角色。 ...“发布”是指一个文件集合,这些文件联合在一起可以使用distutils构建、打包和发布模块;创建好的发布可以用于安装、也可以上传到PyPI与他人共享。 ...创建布发:(1)将各代码文件组织到模块容器中;(2)准备一个README或README.txt文件;(3)而后在容器中创建setup.py文件 例: from distutils.core
最近在做编译原理课设,准备用Java写个GUI整合一下,因为自己的LL1文法使用python写的,所以需要Java来实现运行python代码,网上给出了主要三种方法,但是使用Jython的方法有局限性且不太方便...+文件名的命令,调用python程序相同 建议先使用cmd方式确认代码能够正常运行,因为如果代码在pycharm下编写执行, 可能在cmd方式下会出现缺少包的情况 */ proc = Runtime.getRuntime...().exec(“python D:\\LL1.py”);// 执行py文件 proc.waitFor(); } catch (IOException e) { e.printStackTrace(...); } catch (InterruptedException e) { e.printStackTrace(); } 上面给出的是一个简单的执行python文件的方法, exec(“python....py”, String.valueOf(a), String.valueOf(b) }; Process proc = Runtime.getRuntime().exec(args);// 执行py文件
distutils和setuptools工具 用来Python环境中构建和安装额外的模块,模块可以基于Python,也可以C/C++写的扩展模块,可以是python包,包中包含了C和Python编写的模块...以上的版本,64 位平台则适用于 Python 2.4 以上的版本),可以让程序员更方便的创建和发布 Python 包,特别是那些对其它包具有依赖性的状况。...将python文件(.py)封装成可安装使用的模块 参考:https://docs.python.org/3.6/distutils/introduction.html#distutils-simple-example...1.创建一个文件夹,将需要封装的pagtest文件夹(里面为.py文件,需要包括一个__init__.py文件,内容可以为空)放到该文件夹中,然后创建setup.py文件对包进行配置: from setuptools...README.txt文件用于对文件的安装以及使用信息做描述 3.目前文件夹的目录的架构为: pagtest/ __init__.py print1.py print2.py
distutils distutils是Python 标准库的一部分,这个库的目的是为开发者提供一种方便的打包方式, 同时为使用者提供方便的安装方式。...从路径可以看出,该模块安装到标准库的制定路径下。 五、使用模块 安装好模块之后,在python的交互环境中导入模块。...模块就是hello.py文件,引用hello.py文件中的hello_fun()函数。 setuptools setuptools是distutils的增强版。...一、创建功能包 创建一个文件夹demo,在文件夹里创建get_path.py和__init__.py两个文件。get_path.py是功能函数,__init__.py是包的标识文件。...创建setup.py文件,填写必要的打包信息。
模块:编写Python代码的py文件 包:用来分门别类存放模块代码的文件夹,【一般存在一个__init__.py文件】 模块的几种导入方式: __init__.py文件: __all__变量的使用: _..._init__.py文件中导入其他模块文件,推荐使用 from . import xxx 可以使用别名来简化导入的模块名称【as的使用】。...注意: 1、当一个普通文件夹充当包的时候,导入模块时,一定要指定模块名称,因为普通文件夹不是包(包是可以直接导入的)。...2、当导入的包路径太长的时候,可以使用as关键字取别名来解决 3、包与普通文件夹的区别 发布模块: 在文件的主目录创建setup.py文件,编辑如下: from distutils.core
结尾的代码文件 一个文件被看作一个独立的模块,一个模块也可以被看作是一个文件 模块的文件名就是模块的名字加上扩展名(.py) ...在指定的路径下搜索模块文件 编译成字节码 文件导入时就会编译,因此,顶层文件的.pyc字节码文件在内部使用后会被丢弃,只有被导入的文件才会留下.pyc文件 执行模块的代码来创建其所定义的对象 ...,则py_pkg_mod容器必须要在模块搜索路径中 import package1.mod1 包导入语句的路径内的每个目录内都必须有__init__.py文件 __init__.py可包含...3、使用distutils模块能够帮助完成模块或程序发布 “发布”是指一个文件集合,这些文件联合可使用distutils构建,打包和发布模块 创建好的发布可以用于安装,也可以上传到...PyPI上与他人共享 发布模块的步骤: 1)创建发布 将各代码文件组织到模块容器中 准备一个README或README.txt文件 而后在容器中创建setup.py文件 setup.py
1.2、使用import 文件.模块的方式导入 在桌面创建demo.py文件,并把receiveMsg.py和sendMsg.py使用import文件.模块的方式导入demo.py文件。...总结: 包将有联系的模块组织在一起,即放到同一个文件夹下,并且在这个文件夹创建一个名字为__init__.py 文件,那么这个文件夹就称之为包 有效避免模块名称冲突问题,让应用组织结构更加清晰 二、_..._init_ _.py文件 _ _init_ _.py控制着包导入行为 _ _init_ _.py为空,意味着仅仅把这个包导入,不会导入包中的模块 在_ _init_ _.py文件中,定义一个_ _all...此外,我们可以还引用更多的子包: from A.sub_B import b1 事实上,你可以一直沿子包的树状结构导入 在我们上边的目录结构中,我们可以发现很多的 __init__.py 文件。...__init__.py b.py 2.编辑setup.py文件 py_modules需指明所需包含的py文件 from distutils.core import setup setup
_64.egg文件拷贝至存放第三方包目录下后用unzip解压出来即可 unzip grpcio-1.12.0-py2.7-linux-x86_64.egg 会解压出grpc目录,sys.path.append.../src/lcp/link_master.py", line 26, in import etcd3 File "/root/test/py_third/etcd3/__init...line 3, in import etcd3.etcdrpc as etcdrpc File "/root/test/py_third/etcd3/etcdrpc/__init...,这个pkg_resources.py文件是setuptools-39.1.0生成的。 ...grpcio就通过了;于是在docker build自动安装的过程中执行grpcio安装前,再执行一次其他插件的安装,这样编译就通过了,怀疑是插件未及时更新,但验证镜像B时所有的相关包都可以正常用python
SAP MM 启用批次管理的物料MB21创建预留单据时批次号可以为空! 如下预留, 批次号字段为空。...实际上该物料是有激活batch management的, For MB21, it is just material reservation, no posting required, so Batch
如果python无法在机器上写入字节码,程序仍然可以工作,字节码会在内存中生成并在程序结束时丢弃掉。(严格而讲,只有文件导入的情况下字节码才会保存,并不是对顶层文件)。...Python虚拟机的原理就是模拟可执行程序再X86机器上的运行,X86的运行时栈帧如下图:当发生函数调用时,创建新的栈帧,对应Python的实现就是PyFrameObject对象。...下为.pyd文件),该文件可以 直接import进入Python session。...Distutils或setuptools负责这部分。虽然Cython可以在某些情况下为你调用它们。具体实例,在faser rcnn中,bbox_overlaps函数就行用cython写的。?...一个典型的setup.py的写法如下(参考自官方文档): 文件结构为: top |-- package | |-- __init__.py # 空的 | |-- module.py # 这个
文件 .egg文件,由setuptools库创建的包,第三方常用的格式,添加了元数据(版本号,依赖项等)信息的zip文件 ---- 路径顺序为 程序主目录,程序运行的主程序脚本所在的目录...此模块下面必须有一个.py的文件,其调用才有意义 此模块下创建.py文件为n1.py ? 导入并查看其类型 ? 2 创建包 ? 其自带_init_.py文件 ?...pycharm 中,创建Directory和创建python package 不同,前者是创建普通的目录,后者是创建一个带有_init_.py文件目录,及包 3 子模块 包目录下的py文件,子目录都是其子模块...: 1 包能够更好的组织模块,尤其是大规模代码很多,可以拆分成很多子模块,便于使用某些功能就加载相应的子目录 ---- 包目录中_init_.py是包在第一次导入时就执行的,内容可以为空,也可以是用于该包的初始化工作的代码...2 创建setup.py文件 ? 其路径在该包装的最外层。 内容如下 #!
什么是setuptools setuptools是Python distutils增强版的集合,它可以帮助我们更简单的创建和分发Python包,尤其是拥有依赖关系的。...,而不用创建一个MANIFEST.in文件 自动生成经过包装的脚本或Windows执行文件 支持Pyrex,即在可以setup.py中列出.pyx文件,而最终用户无须安装Pyrex 支持上传到PyPI...可以部署开发模式,使项目在sys.path中 用新命令或setup()参数扩展distutils,为多个项目发布/重用扩展 在项目setup()中简单声明entry points,创建可以自动发现扩展的应用和框架...在demo中执行mkdir demo,再创建一个目录,在这个demo目录中创建一个init.py的文件,表示这个目录是一个包,然后写入: #!...也就是说定义好一个参数以后,可以另你生成的.egg文件可以被直接执行,貌似Java的.jar也有这机制?
什么是setuptools setuptools是Python distutils增强版的集合,它可以帮助我们更简单的创建和分发Python包,尤其是拥有依赖关系的。...try: from setuptools import setup except ImportError: from distutils.core import setup 创建一个简单的包...在demo中执行mkdir demo,再创建一个目录,在这个demo目录中创建一个__init__.py的文件,表示这个目录是一个包,然后写入: #!...也就是说定义好一个参数以后,可以另你生成的.egg文件可以被直接执行,貌似Java的.jar也有这机制?...如果上述”exclude_package_date”对象属性不为空,比如”{‘myapp’:[‘.gitignore’]}”,就表明只排除”myapp”包下的所有”.gitignore”文件。
import sys, os, shutil, time from distutils.core import setup from Cython.Build import cythonize start_time...:param base_path: 根路径 :param parent_path: 父路径 :param excepts: 排除文件 :return: py文件的迭代器...', excepts=(setup_file,)): ''' 删除编译过程中生成的.c文件 :param path: :param excepts: :return...,某一文件迷之无法打包 检查文件名是否包含非法字符(比如-) Linux下打包失败或卡住不动 检查是否安装依赖yum install python-devel gcc,如果确定安装依赖,可以稍微等一等...在每个需要打包的文件夹中加入空的__init__.py文件用于判断路径,如果有非空的__init__.py文件,记得打包后复制进对应文件夹 尚未解决的问题 __init__.py判断路径打包和import
相机可移动硬盘恢复格式化了的文件后部分文件打不开处理方法?...我们在日常使用过程中,总会遇到可移动硬盘格式化了问题,可移动硬盘有价,文件无价,今天在这分享下可移动硬盘可能会遇到的问题,可移动硬盘格式化了该如何恢复 。可移动硬盘格式化了可以恢复文件吗?...步骤2:工具找出文件后,会放到与要恢复盘同名的目录中。 步骤3:现在在工具里,可以直接看到电脑中打不开的目录里面的文件名都是正常的了。...将要恢复的文件勾选,然后点右上角的保存,《另存为》按钮,将勾选的文件拷贝出来。 步骤4:最后一步只需等待工具将文件拷贝完成就可以了 (为了以防万一,最好检查下恢复出来的文件是否正常)。...注意事项1:可移动硬盘格式化了需要注意,格式化后这个盘暂时不要存入新的文件,否则数据被覆盖了就不能恢复。 注意事项2:可移动硬盘格式化了恢复出来的文件需要暂时保存到其它盘里。
有时候我们创建了一个非常好用的包,希望能够分发给好友一起使用,或者开源到网上,这个时候就要会利用python包的发布的工具。...utils/ __init__.py func.py ......与包的建立的相比,多了setup.py文件和MANIFEST.n文件,这两个文件包含了包发布相关的所有内容。...1. setup.py文件 # setup.py from distutils.core import setup setup(name='project', version='1.0',...MANIFEST.ni 文件 #MANIFEST.ni include *.txt recursive-include test * recursive-include doc * 可以看出该文件的功能就是列出各种不属于代码的部分