新手,刚学了2天Python 发现很有趣,有个问题想问下
如图:d.py在ssffe模块module中 c.py在一个名字为tesat的文件夹directory中
临时建立的,名字随便打的别介意。。
在d.py中
print 'dddd'
在c.py中
from ssffe import d
print 'cccc'
执行c.py 输出:
dddd
cccc
问题:我想在d.py中引用 c.py
发现用语句 from tesat import c 程序报错
即导入系统中其他目录的Python文件
导入语句怎么写
写了很多仍然报错
PHPz2017-04-17 17:32:15
directory就是有個目錄,pycharm會認為你這個裡面可能存放一些你的資源,比如css/js什麼的,或者是一些配置文件,裡面沒有__init__.py,而package是會創建__init__.py的這關乎到你的哪些python檔案對外是可見的。
或你可以這麼理解,python在文件層面或類別名稱層面上的可見性用__2個下劃線表示,對於文件的可見,用package裡面定義的__init__.py描述
A是一個你說的Directory
B是一個package 裡面有__init__.py
你如果不想在A裡面加__init__.py使其變成一個package的話
手動在程式碼裡動態加上A的目錄到sys.path裡
這樣python import 模組的時候會按照sys.path列表順序載入指定的模組
這樣你from API import foo的時候會找到A下面的python檔
API.py的實作
# -*- coding: utf-8 -*-
def foo():
print "foo called"
天蓬老师2017-04-17 17:32:15
directory就是個普通目錄;package是帶有__init__.py檔案的目錄,這和python的import機制相關,
建議看一下python tutorial第六章Modules(安裝後就有,或者上官網,不想看英文的話中文python文檔)。