搜尋

首頁  >  問答  >  主體

新手:pycharm使用创建directory和Python package的区别??

新手,刚学了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文件

导入语句怎么写
写了很多仍然报错

PHPzPHPz2888 天前709

全部回覆(3)我來回復

  • PHPz

    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"

    回覆
    0
  • 巴扎黑

    巴扎黑2017-04-17 17:32:15

    沒人回答嗎?

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-17 17:32:15

    directory就是個普通目錄;package是帶有__init__.py檔案的目錄,這和python的import機制相關,
    建議看一下python tutorial第六章Modules(安裝後就有,或者上官網,不想看英文的話中文python文檔)。

    回覆
    0
  • 取消回覆