首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python导入运行的当前模块报错

print('tt') 我现在要在test.py中使用tt(), 代码如下: from test.tt import tt if __name__ == '__main__': tt() 以上导入模块是编译器自动导入的...说没有找到这个模块,然后我将导入换成相对路径 ? 可以看到编译器是有报错提示的,但是运行完全没有问题。 将路径换成相对路径试试呢? ? 很好,编译器是认识的,但是不好意思运行报错 ?...探究 众所周知,Python模块导入的查找路径可以通过sys.path查看,我看了一下: ['/home/hujing/workspace/python/python_demo/test', '/home...尝试 首先,无法导入本包下的其他模块,尝试在其他模块中导入: 新建模块并导入刚才的test模块, 文件结构如下: ?...思考 那我就奇怪了,为什么换个模块运行就可以。就不能正常导入自己包的模块吗?还是说python没有把运行路径当做包?

1.5K20

封装Python代码:如何在未安装Python的情况下运行Python脚本

标签:Python,Pyinstaller 你知道吗?你可以封装你的python代码,并提供给其他人去运行,即便他们没有安装python。...可以像计算机(Windows、Mac或Linux)上的任何程序/应用程序一样运行脚本,无需Python,无需安装库。 在某些时候,可能希望将你的Python脚本提供给其他人在他们的机器上运行。...最终的结果是,其他人可以在不安装Python解释器或任何模块的情况下运行该文件。...使用Pyinstaller封装Python代码 Pyinstaller是一个Python库,可以为你封装Python脚本,并且非常易于使用。...根据官方描述: PyInstaller读取你编写的Python脚本,分析你的代码,以发现脚本执行所需的所有其他模块和库。

3.5K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何在 Python 中导入模块而不执行整个脚本

    1、问题背景在 Python 中,当导入一个模块时,该模块中的代码会被立即执行。这在大多数情况下是合理的,但有时我们可能只想导入模块而不执行其中的代码。...例如,我们在一个脚本中有多个模块,并且我们只想在满足某些条件时才导入其中一个模块。上面的代码中,问题在于 import 语句位于条件语句(if 语句)内部。...这会导致在程序运行时,该模块会被立即导入,而不管 if 语句的条件是否为真。...这样,当我们使用 import 语句时,系统会首先尝试从搜索路径中的第一个位置导入该模块。如果该模块存在于搜索路径中的第一个位置,则系统会导入该模块而不执行其中的代码。...这样,我们就可以在不执行 MainPage 模块中的代码的情况下导入该模块。另一种解决方法是将需要导入的模块放在一个单独的文件中,然后使用 exec() 函数来执行该文件的代码。

    15110

    Python的绝对导入和相对导入

    Python 相对导入与绝对导入,这两个概念是相对于包内导入而言的。包内导入即是包内的模块导入包内部的模块。...所以,如果一个模块被直接运行,则它自己为顶层模块,不存在层次结构,所以找不到其他的相对路径,所以如果直接运行python xx.py ,而xx.py有相对导入就会报错看下面例子:package├── _...有两种方式加载一个 py 文件:作为 top-level 脚本 作为 top-level 脚本指的是直接运行脚本,比如 python myfile.py。...前面提到含有相对导入的模块不能被直接运行,实际上含有绝对导入的模块也不能被直接运行,会出现 ImportError:ImportError: No module named XXX这与绝对导入时是一样的原因...要运行包中包含绝对导入和相对导入的模块,可以用 python -m A.B.C 告诉解释器模块的层次结构。

    4.5K32

    【愚公系列】2021年12月 Python教学课程 17-模块与包

    在 Python 中,模块的导入方式有以下四种: import xx.xx from xx.xx import xx from xx.xx import xx as rename from xx.xx...import sys import os new_path = os.path.abspath('../') sys.path.append(new_path) 默认情况下,模块的搜索顺序是这样的: 当前执行脚本所在目录...if __name__ == '__main__': print('程序自身在运行') else: print('我来自另一模块') 运行输出如下: $ python using_name.py...程序自身在运行 $ python >>> import using_name 我来自另一模块 >>> 说明: 每个模块都有一个__name__属性,当其值是’main’时,表明该模块自身在运行,否则是被引入...Python 会进入文件系统,找到这个包里面所有的子模块,一个一个的把它们都导入进来。 但是这个方法有风险,有可能导入的模块和已有的模块冲突,或者并不需要导入所有的模块。

    38720

    python循环引用带来的MemoryError错误解决

    有一天django服务开始报错MemoryError的错误,没有遇到过这样的错误,上来之后还是很蒙蔽的,问了几个业内的人,他们 都给我说让我改服务器里面配置的东西, 因为是要给大家用的,服务器要保证长久运行...自己刚开始 也没有想到gc模块,在百度搜索, 找半天 终于找到了,知乎的链接,大概的方式就是用gc 直接去处理。...这里我也采用的ge模块去解决的,用gc.collect() 去解决这个问题。 这个原因还是因为对python的底层代码不太熟悉,对python的学习不够深入。...在for循环,由于当时的逻辑过于复杂,会占用大量内存,再加上接口测试平台有一个功能,录制测试用例,这一个功能采用的是mimtproxy来录制测试用例 , 结果这个工具把数据写入了内存,由于在统一的机器上...我们经常说的一周入门python,其实我感觉3天就可以入门python了。Java入门也就是一周了。其实入门这是万水千山的开始。

    1.5K10

    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...win->'nt'; Linux->'posix' os.system("bash command") 运行shell命令,直接显示 os.environ 获取系统环境变量 os.path.abspath

    1.3K10

    DolphinScheduler-1.3.0-dev新功能尝鲜

    bin - 服务启动脚本 conf - 配置文件目录 DISCLAIMER install.sh - 一键部署脚本 lib - 依赖的jar包 LICENSE licenses NOTICE script...1.3.0版本的install.sh脚本只是一个部署脚本,部署配置文件在conf/config/install_config.conf中 下面是1.3.0的配置文件,与之前版本的配置文件相比,精简了不少...重新运行任务,成功 ? 总结:ds-1.3.0引入了资源目录,在任务节点应用的时候,需要加上对应资源的目录层级!!!...执行结果,1节点执行成功,然后执行2节点,3节点未执行 shell-1执行失败测试 ? 执行结果,1节点执行失败,执行3节点,2节点未执行 总结:条件节点!这个真的可以。...不可自定义参数,比如导入mysql,某些表可以加上--direct加快导入速度 解决方案 任务名称是通用的,需要在Sqoop页面上补充作为必选项 增加两个自定义参数框,用于用户编写所需的自定义参数 MR

    1.7K61

    使用 burp 抓取命令行工具数据

    对于 burp 和 mitmproxy 工具而言, 通常用于拦截浏览器的 http 流量,对于一些命令行工具,比如 wget、curl 或者 python 编写的脚本,无法直接使用的 burp 截取数据...http://localhost:8080/cert cd ~/certs openssl x509 -inform DER -in burpca.der -out burpca.crt 如果使用的是 mimtproxy...证书需要放在目录 ~/.mitmproxy 下 在 Moc OSK 系统,只需要双击下载的 der 文件,让它受机器上所有用户的信任,导入后,搜索 "PortSwigger" 并打开证书,在 SSL...在 Linux 下,信任证书的存储位置在 /usr/share/ca-certificates,复制 burpca.crt 到该目录下,然后运行: sudo update-ca-certificates.../candidates/java/11.0.3-zulu 可以使用 Java 的 keytool 程序来为 Java 的密钥存储添加证书,该程序所在位置 $JAVA_HOME/bin/keytool,导入命令如下

    2.9K40

    if __name__ == __main__ 如何正确理解

    而 Python 则有不同,它属于脚本语言,不像编译型语言那样先将程序编译成二进制再运行,而是动态的逐行解释运行。也就是从脚本第一行开始运行,没有统一的入口。...一个 Python 源码文件除了可以被直接运行外,还可以作为模块(也就是库)被导入。不管是导入还是直接运行,最顶层的代码都会被运行(Python 用缩进来区分代码层次)。...,则代码块被运行,如果模块是被导入的,则代码块不被运行。...__main__.py 文件与 python -m Python 的 -m 参数用于将一个模块或者包作为一个脚本运行,而 __main__.py 文件则相当于是一个包的”入口程序“。...2、 加上 -m 参数时 Python 会先将模块或者包导入,然后再执行 3、 __main__.py 文件是一个包或者目录的入口程序。

    51010

    microPython中的字节技术

    若已导入多个模块,则在没有足够的RAM来运行编译器时,会出现这种情况。在这种情况下,导入语句将引发内存异常。...若模块在导入时实例化全局对象,则将在导入时占用RAM,编译器就无法在随后的导入中使用该RAM。通常, 最好避免导入时运行的代码;更好的方法是在所有模块被导入后都有由应用程序运行的初始化代码。...此文件可能被复制到文件系统,并以常规方式导入。或者,某些或所有模块可实现为冻结字节码:在大多数平台上,这样可以节省更多的RAM,因为字节码直接从闪存运行而没有存储在RAM中的。...tools 各类脚本辅助工具,例如 Pyboard.py 可以通信控制 MicroPython 。 examples Python 示例代码。...tools/--各种工具,包括pyboard.py模块。 examples/——几个示例Python脚本。 这个目录是大量的驱动。

    1.5K30

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

    但是,当他在 VSCode 里面运行这个start.py文件时,Python 是从bin文件夹下面运行的。此时,Python 会把bin文件夹当做工作区。...如果仅仅从技术上来说,你非要导入 bin 文件夹的父文件夹下面的其他模块,也并不困难,我在一日一技:导入父文件夹中的模块并读取当前文件夹内的资源一文中讲到了具体的做法。 但问题在于,你不应该这样做。...你拿到这个项目的时候,你甚至不知道,当你想运行这个代码的时候,python3 xxx.py应该运行哪个文件。...例如: 当你要启动这个项目的时候,直接在最外层python3 main.py,就能把它启动起来。在main.py里面,你可以导入其他模块,然后调用其他模块里面的类或者函数。 这样做的好处是什么?...from utils.abc import time_format 你根本不可能出现需要导入父文件夹中的某个模块的情况。 只有工具脚本,才需要单独使用一个文件夹来存放,然后调用父文件夹中的其他文件。

    2.5K11

    Python 的 import 是怎么工作的?

    Python 文档中这样描述,一个 Python 文件就是一个模块,Python 的文件名(不带后缀.py)就是模块名。...: 3、如果一个模块导入另一个模块,而后者又导入另一个模块,则第一个模块的 sys.path 是解释器搜索第二个导入语句的位置。...然后要导入的项目就添加到了其命名空间内,我们可以通过 xx.yy 的方式来使用。...file5.py 可以看出,相对导入已经正常工作: 结论 如果是当做脚本文件直接运行的,使用绝对导入 如果是当做模块供其他文件导入,使用相对导入 3、一个自定义包的例子 先上一个图来看下目录及引用结构...,虽然 file3 被导入了两次,但只执行了一次,说明 Python 内部已经考虑了同一个包的多重导入问题。

    77910

    Selenium2+python自动化54-unittest生成测试报告(HTMLTestRunner)

    unittest里面方法是不能生成html格式报告的,需要导入一个第三方的模块:HTMLTestRunner 一、导入HTMLTestRunner 1.这个模块下载不能通过pip安装了,只能下载后手动导入...3.下载后手动拖到python安装文件的Lib目录下 二、demo解析 1.下载Download下的第二个文件test_HTMLTestRunner.py,这个就是官方给的一个测试demo了,从这个文件可以找到该模块的用法...2.为了生成带中文描述的测试用例,可以在case中添加注释,如在test_01的脚本添加如下注释: class Test(unittest.TestCase): def setUp(self):...def test01(self): u'''测试登录用例,账号:xx 密码xx''' print "执行测试用例01" def test03(self):...u'''测试登搜索用例,关键词:xxx''' print "执行测试用例03" 3.重新运行后查看测试报告 ?

    1.3K60
    领券