久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

module - python模塊from import語句相對導入,加不加點號有什么區別?

瀏覽:119日期:2022-07-28 13:58:53

問題描述

python版本為2.7

目錄結構

$ ls -R.:t.py util/./util:__init__.py __init__.pyc db.py db.pyc

內容

util/db.py

# coding=utf-8 var=100 def show(): print var

t.py

# coding=utf-8 from .util.db import var # util包前面加點print var if __name__==’__main__’: print var

運行報錯

$ python t.pyTraceback (most recent call last): File 't.py', line 3, in <module> from .util.db import varValueError: Attempted relative import in non-package

提示不能在non-package下導入。

在當前目錄下新建__init__.py后依然是相同錯誤。

但是將util前面的點號去掉之后可以正常輸出,為什么呢?

謝謝

問題解答

回答1:

相對導入只能用于同一個package里,并且包內的文件不能單獨運行

回答2:

t.py是作為主腳本執行的,如果里面有from .的方式就回報錯(只有包內模塊才用這中方式)即使加了_init_,但是你還是直接執行的,方式沒變。你應該改成python -m xxx.t

標簽: Python 編程
主站蜘蛛池模板: 五家渠市| 巫山县| 聂拉木县| 庄河市| 绥宁县| 靖州| 资溪县| 安新县| 延吉市| 抚州市| 灯塔市| 扶余县| 满城县| 专栏| 武宣县| 崇州市| 峨边| 潞西市| 万宁市| 绥棱县| 千阳县| 蚌埠市| 宜良县| 依兰县| 双峰县| 霸州市| 鄂尔多斯市| 高清| 奉新县| 渝中区| 澄城县| 黑山县| 保德县| 博爱县| 长沙县| 阳江市| 宜州市| 高要市| 吴桥县| 隆安县| 垣曲县|