linux下import包中的模块,关于python:在Linux下将pyw文件导入为模块
我从一个用Python for Windows编写的同事那里得到了一些代码。 他正在使用几个模块,其中文件的扩展名为mymodule.pyw而不是mymodule.py。 这只是通过做
import mymodule
即使没有名为mymodule.py的文件。 在Linux(在我的情况下是Ubuntu 13.04)中,这不起作用。 我收到此表单的错误消息:
Traceback (most recent call last):
File"main.pyw", line 27, in
import core.main_window
ImportError: No module named main_window
简单地将模块文件重命名为.py可以解决问题,但这是不可取的,因为我想在Windows和Linux上使用相同的软件。
为什么Python和Windows中的处理有这种差异,可以采取哪些措施来解决它?
参考文献:
我似乎找到了为Windows添加pyw支持的原始补丁,但没有争论为什么它不应该也适用于Linux。
对于Windows版本的python,存在pyw扩展,因为windows在CLI和GUI应用程序之间有很强的区别。 单独的扩展映射到单独的python解释器,py到python.exe(CLI)和pyw到pythonw.exe(GUI)。
这仅适用于双击python文件以启动正确的解释器; 因此,逻辑上应该具有pyw扩展名的唯一文件是需要双击的"入口点"脚本; 所有其他文件,甚至在Windows上都可以而且应该有py扩展名。
在linux上,pyw和py都没有特别帮助使脚本双击,它应该在第一行上带有"shebang",并具有可执行文件权限(chmod + x)。 在unix上,可执行文件通常根本没有扩展,但如果你愿意,仍然可以以.pyw结尾,linux不关心一点!
而且,你需要chmod +x它:)
这对于您实际运行的脚本来说是正确的,但对于您加载的模块,Windows和Linux之间存在差异(出于没有充分理由),Windows将加载pyw文件,而Linux"无法处理"( 或不会)。 我原来的问题仍然存在。 有没有办法让Python(在Linux下)加载pyw文件作为模块。 重命名所有pyw文件当然是另一种可能性,但这需要我编辑我想避免的同事程序。 将pyw文件作为模块加载具有某些应用程序,如我在原始问题中的链接中所述。
linux下import包中的模块,关于python:在Linux下将pyw文件导入为模块相关推荐
- 未找到导入的项目 .wpp.targets。请确认 Import 声明中的路径正确,且磁盘上存在该文件
今天打开vs突然报了一个错......... .wpp.targets.请确认 <Import> 声明中的路径正确,且磁盘上存在该文件 重新新建一个项目,dll全部都是黄色感叹号 ...
- 电脑重启后python导入的库不见_为什么python不会在启动时自动导入每个模块?
我正在玩Python 2.7,每个人都知道,在每个程序的开头,你总是需要导入模块.例如:import random import time for x in range(1, 300): print ...
- Linux修改jar包中的配置文件
打包以及修改jar包 cd genesys_data_etl mvn clean package -Poffline -Dmaven.test.skip=true 日志如下: [INFO] --- m ...
- linux中网页播放音乐,Linux_在Linux系统下播放网页中的背景音乐技巧,在Linux中的firefox浏览许多网页 - phpStudy...
在Linux系统下播放网页中的背景音乐技巧 在Linux中的firefox浏览许多网页时,很多使用了基于WMP的背景音乐播放器,如部份baidu空间.但firefox默认不支持播放. 在LINUX的源 ...
- Linux替换jar包中内容
因fastjson低版本存在漏洞,故线上服务需要升级到fastjson-1.2.70.jar,替换jar服务中的低版本jar包 1.创建一个临时目录 mkdir temp 2.将jar添加到目 ...
- linux替换war包中的文件,Linux zip与unzip命令:替换war包中的某个文件
原本,想用jar命令来快速替换war包的文件的,可是,发现Ubuntu中没有装Java,懒癌发做,遂使用zip与unzip命令代替.app zip:压缩命令ide 格式: zip [-选项] ...
- 如何讲页面打入jar包中_如何把我的Java程序变成exe文件?
JAVA是一种"跨平台"的语言,拥有"一次编写,处处运行"的特点,让它成为当今IT行业,必不可少的一门编程语言. 每一个软件开发完成之后,应该大家都需要打包程序 ...
- linux 在命令行中复制的快捷键_在 Linux 中加速工作的键盘快捷键 | Linux 中国
学习键盘快捷键将使生产率提高 3.3%-- S Sathyanarayanan 操作鼠标.键盘和菜单会占用我们很多时间,这些可以使用键盘快捷键来节省时间.这不仅节省时间,还可以使用户更高效. 你是否意 ...
- python设计自定义栈类_Python如何自定义模块?Python基础教程,第十讲,自定义模块...
学完此次课程,我能做什么? 通过此次课程,我们将学会如何自定义自己的模块和包,以及如何引用到自己的项目中,从而实现代码的复用. 学习此次课程,需要多久? 5-10分钟 课程内容 什么是Python的标 ...
最新文章
- Scrapy爬取IT之家
- python argsort排序结果_numpy.argsort()可以对元组或列表进行排序
- uni app 调用网络打印机_前端工程师 | 原生小程序坑点:uni-app到底好用在哪里?...
- vue 项目引用static目录资源_vuejs-templates静态资源目录src/assets、和static/区别
- CSS Grid中的陷阱和绊脚石
- Spring自定义属性编辑器及原理解释.md
- [题解] 2038: [2009国家集训队]小Z的袜子(hose)
- 记风雨兼程的2020年,2021年,我来了!
- 用nginx转发请求tomcat 如何配置访问日志获取真实ip
- jenkins linux虚拟机,Jenkins实战演练之Linux节点任务配置
- GetTickCount64的使用
- oracle临时表中数据消失了,oracle 临时表的使用
- healthkit简介
- 小白理解transformer解析博客
- 怎样把孩子写的日记或作文制成电子版呢?
- 用PS怎么画虚线圆?
- 台式计算机红外线端口,台式电脑的红外线端口在哪?
- 自定义ListVIew添加上下更多项
- 手机怎么把照片转JPG格式?这两种方法可以迅速转换
- 32.我的wafBypass之道
热门文章
- 《嗜血的皇冠-光武皇帝之刘秀的秀》——读后感
- 解决github下载慢的方法,不修改hosts文件,不修改网络
- c语言借助栈单链表逆置,借助栈实现单链表逆置--数据结构
- 雷替曲塞-聚乙二醇-马来酰亚胺 Raltitrexed-PEG-MAL
- 51单片机与PC通信
- 洋桃开发板笔记(三) 最基本的USART的串口使用
- DLP数据丢失防护/数据防泄漏 隐私保护概念解析
- 关于Unicode控制字符RLO,LRO,PDF 的坑
- EN 845-2: 砖石工程附属部件规范-第2部分:门楣/过梁—CE认证
- Linux下载和在在虚拟系统安装以及linux的常用命令解说