首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Python 自定义导入问题 和 打包成exe无法在别的电脑运行的问题

的说明 每一个目录下面都会有一个__init__.py的文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录(文件夹),而不是一个。...__init__.py可以是空文件,也可以有Python代码,因为__init__.py本身就是一个模块,而它的模块名就是对应的名字。调用就是执行包下的__init__.py文件。...问题描述 在一个文件中要引入一个自定义中的模块,出现模块无法导入问题, 此时采取第一种解决方法: 先导入sys模块 然后通过sys.path.append(path)函数来导入自定义模块所在的目录 导入自定义模块...上面的解决方法会导致以下问题: 可以在本地成功运行,但是打包成exe以后,到别的电脑上无法运行,因为sys.path.append(path)里面的path在别的电脑上不一定存在。...第二种解决方法: 不在代码里使用sys.path.append(path),保证代码里不存在本地绝对路径,把要导入的自定义拷贝到site-packages目录下, 然后再打包成exe以后就可以在别的电脑上成功运行

2.5K20

一文搞懂 Python 的模块和,在实战中的最佳实践

下面是完整的目录结构: 我希望我搭建的这个目录结构,能够按照预想的正常工作。然而,由于 Python 导包机制一套组合拳,让我一度陷入了迷茫。...你可以在此文件中,导入其他模块,定义 变量、函数、 等,进行一些预定义的工作,然后在用 import 导入里的模块时,被导入的包下的初始化文件会被自动调用执行。...本质上来讲,import 会把要导入的模块或,执行一遍,然后将里面导入的其他模块,和定义的 变量、函数、 等都保存在此模块独立的名称空间中,并且被导入的模块自身的名称符号,也会加入引用者自己的名称空间...__ 字符串,则相对导入无法从中分析出父级的信息,自然会报上面的错误:“尝试从未知的父中进行相对导入”,了然。...:python -m xxx.xxx.模块名,前面的 xxx 是名,这样,模块的 __name__ 值就会包含实际的名和模块名,可以让相对导入正常工作

1.5K41

python之基础篇(八)——模块与

模块的执行环境:     模块是被导入的,但模块也可以导入和使用其它模块,这些模块可以用python或其它编程语言写成     模块可内含变量、函数以及来进行其工作,而函数和可以包含变量和其它元素...是一个有层次的文件目录结构,它定义了一个由模块和子组成的python应用程序执行环境     基于python在执行模块导入时可以指定模块的导入路径,如:       import dir1.dir2...使用以下命令导入:     import package1.mod1   导入语句的路径内的每个目录内都必须有__init__.py文件:     __init__.py可包含python代码,但通常为空...;     仅用于扮演初始化的挂钩、替目录产生模块命名空间以及使用目录导入时实现from *行为的角色   发布python模块或程序:     python模块、扩展和应用程序可以按以下几种形式进行打包和发布...、无法实现跨平台的、编译好的库文件     python setup.py install:       install的过程仅仅只是将编译好的文件复制到指定的模块安装目录中。

2.3K30

Python之异常处理、模块与

异常处理中为每一个异常定制了异常类型(python中统一了与类型,类型即),对于同一种异常,一个except就可以捕捉到,可以同时处理多段代码的异常(无需‘写多个if判断式’)减少了代码,增强了可读性...什么时候用异常处理 try...except应该尽量少用,因为它本身就是你附加给你的程序的一种异常处理的逻辑,与你的主要的工作是没有关系的,这种东西加的多了,会导致你的代码可读性变差,只有在有些异常无法预知的情况下... 是一种通过使用‘.模块名’来组织python模块名称空间的方式 的本质就是一个包含init.py文件的目录 凡是在导入时带点的,点的左边都必须是一个,但是导入后在使用时就没有这种限制了,点的左边可以是...、模块、函数、 from后的import导入的模块必须是明确的一个,不能带点,否则会有语法错误 第一次导入或者是的任何其他部分,都会依次执行包下的init.py文件,此文件可以为空也可以放一些初始化的代码...的方式作为起始(只能在一个中使用,不能用于不同目录内) 需要特别注意的是:可以用import导入内置或者第三方的模块,但是要绝对避免使用import来导入自定义的子模块,应该使用from...import

66210

Java开发者的Python快速进修指南:自定义模块及常用模块

然而,两者之间的区别在于Python没有路径的概念,它直接使用.py文件的文件名作为导入路径,并将其余的工作交给Python解释器来扫描和处理。...另外,你可能经常看到有人使用from..import语句,这种语法是为了.py文件中只导入部分函数或变量而设计的。...当你想要导入某个的时候,你可能会想,为什么我可以直接导入,而不需要在同目录下引入各种第三方呢?实际上,这和Java是一样的。Python也有固定的扫描路径。...如果有多层目录,我们可以继续按照相同的方式导入模块,例如:from java.utils import nameUtil。感觉就像是回到了熟悉的开发环境,我们可以开始进行正常的开发工作了。...获取命令行参数:arguments = sys.argv退出程序:sys.exit()总结在导入方面,两者都使用import语句,但是Python没有路径的概念,直接使用文件名来导入模块。

7342

Python 知识点总结篇(5)

依赖关系,需要依赖的文件,用于存放软件依赖的外部Python列表 |-- README #项目说明文件 README包含内容: 项目简介 功能特性 环境依赖 部署步骤 目录结构描述 版本内容更新...常见问题说明 模块及导入 import本质是路径搜索和搜索路径,导入模块就是把Python文件解释一遍 ,导入的本质是执行该包下的__init__.py文件; 面向对象 编程范式:实现一个任务有不同方式...:def __del__(self):实例释放、销毁时自动执行的函数,常用于一些扫尾工作,例如关闭数据库连接,打开的临时文件等; 私有属性与方法:在定义的时候在属性或方法名前加上两道下划线__; 经典与新式的继承顺序...:Python3.x中经典和新式都是广度优先继承,Python2.x中经典是深度优先,新式时广度有限继承,新式:class Demo(object); 静态方法:名义上归类管理,实际与无关,...无法访问或实例中的属性; 方法:只能访问变量,不能访问实例变量; 属性方法:把一个方法变成一个静态属性,隐藏实现细节; 反射:通过字符串映射,hasattr(obj, attr_name):判断一个对象里是否有对应字符串的方法映射

19430

Python sys os getpass 导入

块的导入 导入一个py文件,解释器解释该py文件 导入一个,解释器解释该包下的 init.py 文件 import module 直接导入模块 from module.xx.xx import...xx 某个模块导入某个模块 from module.xx.xx import xx as rename 某个导入模块并给起个别名 from module.xx.xx import * 某个导入该包下所有模块...python setup.py build 安装源码 python setup.py install sys模块 导入方式: import sys 模块用途:调取系统信息 功能介绍 sys.argv...:执行系统操作 功能介绍 os.getcwd() 获取当前工作目录,即当前python脚本工作目录路径 os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd os.curdir...os.mkdir('dirname') 生成单级目录;相当于shell中mkdir dirname os.rmdir('dirname') 删除单级空目录,若目录不为空则无法删除,报错;相当于shell

1.3K10

Python知识点总结篇(五)

| |-- setup.py #安装、部署、打包的脚本 |-- requirements.txt #依赖关系,需要依赖的文件,用于存放软件依赖的外部Python列表 |-- README #项目说明文件...README包含内容: 项目简介 功能特性 环境依赖 部署步骤 目录结构描述 版本内容更新 常见问题说明 模块及导入 import本质是路径搜索和搜索路径,导入模块就是把Python文件解释一遍...,导入的本质是执行该包下的__init__.py文件; 面向对象 编程范式:实现一个任务有不同方式,对这些不同编程方式的特点进行归纳总结出的编程方式类别称为编程范式,最重要的是面向对象编程和面向过程编程...__; 经典与新式的继承顺序:Python3.x中经典和新式都是广度优先继承,Python2.x中经典是深度优先,新式时广度有限继承,新式:class Demo(object); 静态方法...:名义上归类管理,实际与无关,无法访问或实例中的属性; 方法:只能访问变量,不能访问实例变量; 属性方法:把一个方法变成一个静态属性,隐藏实现细节; 反射:通过字符串映射,hasattr(obj

29120

PythonC++Java到Python入门(4)(完)

那么先是Python的灵魂(笑)所最需要用到的东西——模块导入: 模块 1.首先是几个术语:模块(module)是一个自的由变量和函数等代码组成的.py文件,利用import直接可以引入...(package)是由多个模块和子组成的文件目录,一般来说目录下都包含有一个为__init__.py的文件。...7.使用模块中的函数的写法是:模块名.函数 8.注意只有带有__init__.py的目录才会被认为是一个,使用也可以类似利用点运算符模块只导入其中一个组件 9.还有一点...相似的,Python有with-as语句可以自动执行生成对象的清理工作,用法很简单就是:with 赋值语句的右边 as 赋值语句的左边。...2.交互式编程是直接利用Python的解释器在运行,传统角度相当于一句句写入代码构造内存环境来运行,不需要额外创建.py脚本文件。

69110

解决python3中关于import的疑难杂症

python中import与包管理 概念:模块与 模块module:一般是以.py为后缀的文件,也包括.pyo、.pyc、.pyd、.so和.dll后缀的文件,模块内定义了函数、以及变量 package...简介 在Python中import的常用操作为: import somemodule # 导入整个模块 from somemodule import somefunction # 模块中导入单个函数...from somemodule import firstfunc, secondfunc, thirdfunc # 模块中导入多个函数 from somemodule import * # 模块中导入所有函数...绝对导入与相对导入 绝对导入和相对导入的概念只针对于内模块导入内模块,注意如果foo.py和bar.py在同一个非(没有__init__.py文件)的目录下,那么它们之间可以互相import,不存在绝对导入和相对导入的问题...如果只是导入一个import package而不指名任何模块,且中的__init__.py没有其他的初始化操作,那么包下面的模块是无法被自动导入的。 6.

1.5K30

Python 的 import 是怎么工作的?

一个 module 可以包含变量、函数和,它们是该 module 定义的命名空间的一部分,因此变量的命名问题不是问题,因为两个不同的模块可以有同名的变量、函数和。...一个模块定义一个命名空间,以便变量、函数和可以在两个不同的模块中具有相同的名称,同样的,一个对其组成的和模块做同样的事情,可以通过点号访问主中的模块和。...file5.py 可以看出,相对导入已经正常工作: 结论 如果是当做脚本文件直接运行的,使用绝对导入 如果是当做模块供其他文件导入,使用相对导入 3、一个自定义的例子 先上一个图来看下目录及引用结构...file4 导入了 file3,file5 导入了 file3 file6 导入了 file2,file2 导入了 file1 现在我们来执行一下 run.py 看下效果: 可以看出所有相对导入都已正常工作...,虽然 file3 被导入了两次,但只执行了一次,说明 Python 内部已经考虑了同一个的多重导入问题。

71510

python3 和 python2的区别

Python2中相对路径的import会导致标准库导入变得困难(想象一下,同一目录下有file.py,如 何同时导入这个文件和标准库file)。...Python3中这一点将被修改,如果还需要导入同一目录的文件必 须使用绝对路径,否则只能使用相关导入的方式来进行导入。 3. Python2中存在老式和新式的区别 Python3统一采用新式。...“//”: Python2:返回小于除法运算结果的最大整数;类型上讲,与"/"运算符返回类型逻辑一致。 Python3:和Python2运算结果一样。 2....我们数据分析的应用角度列举了常见实用的第三方工具(如下表),并分析这些工具包在 Python2.7和Python3.5的支持情况: 分类             工具名                 ...运行 matplotlib后发现基础numpy+mkl安装失败,需要自己下载,国内暂无下载源 centos环境下 Python2无法安装mysql-python和mysqlclient,报错: EnvironmentError

1.6K10
领券