首页
学习
活动
专区
工具
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.6K20

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

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

1.5K41

Python】已解决:ModuleNotFoundError: No module named ‘Workbook’

二、可能出错的原因 拼写错误:可能在导入语句中拼写错误,导致Python无法识别模块名。 模块未安装:如果Workbook是一个第三方库的一部分,可能是因为该库没有被正确安装。...自定义模块问题:如果Workbook是一个自定义模块,可能是因为它不在当前工作目录Python的搜索路径中。...以openpyxl库为例,如果我们想导入处理Excel工作簿的模块,应该这样做: from openpyxl import Workbook # 正确的导入方式,Workbook是openpyxl库中的一个...# 创建一个新的工作簿对象 wb = Workbook() # 保存工作簿到文件 wb.save("sample.xlsx") 在这个修正后的示例中,我们openpyxl库中导入了...路径配置:如果导入的是自定义模块,请确保模块文件位于当前工作目录Python的搜索路径中。

21820

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中是否存在“命名空间”,“项目”和“面向对象原则”,例如从其他继承?2、解决方案2.1 使用模块和Python中可以使用模块和来将代码组织到不同的逻辑单元中。...模块是单个Python源文件,包含了、函数、变量等。是一组相关的模块,可以包含子。通过使用import语句可以导入模块和。...对象是的实例,拥有并使用中的数据和方法。继承允许子类继承父的属性和方法。例如,以下代码定义了Person和Teacher。TeacherPerson继承,并添加了自己的属性和方法。...Python项目的基础单位,可以包含子、模块和数据文件。子的子目录,可以包含子、模块和数据文件。模块是Python源文件,包含了、函数、变量等。...和模块必需的文件,它可以让Python目录识别为或模块,如果目录中没有__init__.py文件,Python无法目录识别为或模块。

10110

Python之异常处理、模块与

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

66410

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

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

8042

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 知识点总结篇(5)

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

19530

Python知识点总结篇(五)

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

29420

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脚本文件。

69910

小问题大隐患:如何正确设置 Python 项目的入口文件?

因为 VSCode 的视角看,lib文件夹确实就是在工作区下面的。 但是,当他在 VSCode 里面运行这个start.py文件时,Pythonbin文件夹下面运行的。...例如: 当你要启动这个项目的时候,直接在最外层python3 main.py,就能把它启动起来。在main.py里面,你可以导入其他模块,然后调用其他模块里面的或者函数。 这样做的好处是什么?...这样做,你是在项目的根目录启动的这个项目,所以你的工作区就是项目的根目录。那么你在任何一个.py文件里面都可以很容易地基于工作导入任意其他文件。...可能还有同学要问,那如果我的项目是一个 Python,它本身没有入口文件怎么办呢?这个时候,你可以把这个的__init__.py当做它的入口文件。...在项目根目录留下一个example.py文件,用来演示如何调用这个。而这个本身的代码,是在一个叫做gne的文件夹中的。这个gne文件夹是一个,它的入口文件在__init__.py中。

2.3K11
领券