Python中文
首页
教程
问答
标签
搜索
登录
注册
如何使python文件作为脚本可运行并可作为包导入?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我仍在尝试使用python3,但遇到了一个问题:我可以将.py文件作为脚本运行,也可以将其作为模块导入,但不能同时使用这两种方法。在</p> <p>目录结构</p> <pre><code>test/ __init__.py test.py subwayclock/ __init__.py subwayclock.py build/ gen/ __init__.py gtfs_realtime_pb2.py nyct_subway_pb2.py __init__.py </code></pre> <p>在这种情况下测试.py看起来像这样并且可以工作(rawFEED()是subwayclock.subwayclock.subwayclock)公司名称:</p> ^{pr2}$ <p>但是,我不能直接运行脚本,即</p> <pre><code>python subwayclock/subwayclock.py </code></pre> <p>因为它给出了以下错误:</p> <pre><code>Traceback (most recent call last): File "subwayclock.py", line 32, in <module> from .build.gen.gtfs_realtime_pb2 import FeedMessage SystemError: Parent module '' not loaded, cannot perform relative import </code></pre> <p>但是,如果我在subwayclock中修改import语句/地铁时钟.py陈述(即去掉前导“.”):</p> <pre><code>from subwayclock.subwayclock import FeedMessage </code></pre> <p>我可以管理地铁时钟.py直接通过命令行编写脚本,完美地调用<strong>main</strong>函数。在</p> <p>但是,当我运行原始的测试.py文件时,import语句不再工作,我得到以下错误:</p> <pre><code> Traceback (most recent call last): File "test.py", line 1, in <module> from subwayclock.subwayclock import * File "/var/www/test/subwayclock/subwayclock.py", line 32, in <module> from build.gen.gtfs_realtime_pb2 import FeedMessage ImportError: No module named 'build' </code></pre> <p>我能让这个脚本独立地运行和导入吗?在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>可以使用<code>-m</code>开关和完全限定的包路径从包运行脚本</p> <pre><code>python -m subwayclock.subwayclock </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何在乒乓球比赛中预测球的轨迹,对于AI球拍预测?
7 回答
如何在乒乓球游戏中阻止球
1 回答
如何在乘法和模中不乘空间?
2 回答
如何在乘法和除以2个不同的数字之间进行交换?
8 回答
如何在也是数据一部分的单个字符上拆分大字符串
5 回答
如何在乾草堆中找到針,有更好的解決方案嗎?
8 回答
如何在事件wxWidgets中传递自定义数据
8 回答
如何在事件中使用lambda i=i?
1 回答
如何在事件中心只接收最近的数据
10 回答
如何在事件发生之前保持云函数运行?
8 回答
如何在事件发生后使页面重定向到同一页面
2 回答
如何在事件回调之间保持python生成器的状态
1 回答
如何在事件处理程序(pythonsocket、sphinx)中保留docstring
1 回答
如何在事件处理程序中更改wxRichTextCtrl的光标位置?
9 回答
如何在事件处理程序中访问外部对象?
2 回答
如何在事件循环中将协程打包为正常函数?
9 回答
如何在事件循环之外运行协同程序?
6 回答
如何在事件循环结束时为并发未来的所有线程调用类方法?
5 回答
如何在事件文件中只保留一份摘要?
9 回答
如何在事件模板中添加事件
1 回答