pycharm下調用自己的(python)py文件


目錄

  1. 同一個目錄下
  2. 不同目錄下
  3. 舉例說明其它方法
  4. Pycharm下的調用問題

一、同一個目錄下

調用同一個目錄下的時,可以直接:

  1. import XXX.py
  2. from 文件夾 import XXX.py

只是第一種形式會有波浪線提醒,不過不影響運行。

波浪線問題消除見第四章

二、不同目錄下

在上面基礎上,加上層級名稱即可

當然也可以通過指定路徑的方式處理,見第三章

三、舉例說明其它方法

A

|----- __init__.py

|----- a.py

|---------B

|--------- __init__.py

|---------b.py

|---------C

|--------- __init__.py

|--------c.py

如圖所示結構樹,B,C同屬於A的子目錄,但是B,C之間是平行的。。。

b.py,c.py代碼分別如下:

b.py:

def b_hello():

print "B_HELLO"

c.py:

def c_hello():

print "C_HELLO"

3.1 如果Aa.py要調用B中或者Cpy

則可以如下方式調用(以B為例)

from B import b

b.b_hello()

運行結果:B_HELLO

3.2 如果是B中或者Cpy調用B中或C

這個時候如果我們依舊用如上所說調用,則會報錯(這里是b.py調用c.py)

>>>

Traceback (most recent call last):

File "E:\testnow\A\B\b.py", line 1, in <module>

from C import c

ImportError: No module named C

所以,這種方法不行,那如何做呢,如下

import sys

sys.path.append('E:\\testnow\\A\\C')

import c

def b_hello():

print "B_HELLO"

c.c_hello()

用這種方法,輸出結果是:C_HELLO

也即剛才上面的"from 文件夾 import 模塊名"比較適用於父目錄調用子目錄的情況(當然也可以參照第二章的多個嵌套形式);而第二種方法則對所有的情況都適用,包括兩個模塊甚至都不在一個盤的情況。這里需要注意的一點是:sys.path添加目錄時注意是在windows還是在linux下,windows下需要'\\'否則會出錯。(我在這點上走了很久的彎路)

四、Pycharm下的調用問題

pycharm在同目錄下import,pycharm會提示錯誤,但是可以運行

原因是: pycharm不會將當前文件目錄自動加入自己的sourse_path。

解決方案:右鍵make_directory as-->sources path將當前工作的文件夾加入source_path就OK了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM