1. 程式人生 > >python在windows下import其他模組的注意事項

python在windows下import其他模組的注意事項

初學python,在同一目錄中建立了兩個py檔案:a.py和b.py,然後在a.py中import b.py

from . import b
......

在linux下執行沒有問題,但是在windows下就提示  ImportError: cannot import name 'b'

在網上搜了半天也沒有找到問題所在,後來還是在google上找到了答案。

原來是python會在sys.path下去找import的python檔案,我輸出了一下sys.path:

import sys
print(sys.path)

sys.path裡並沒有我的專案資料夾,所以import的時候就會出錯,用以下程式碼即可解決:

import sys
import os
sys.path[0]=os.path.dirname(os.path.realpath(__file__))
from . import b
然後再 from . import b 就ok了!

如果更完善些,可以判斷一下當前的執行環境,如果是linux,就不用設定sys.path了

import platform
 
def isWindowsSystem():
    return 'Windows' in platform.system()
 
def isLinuxSystem():
    return 'Linux' in platform.system()

if isWindowsSystem() :
    import sys
    import os
    sys.path[0]=os.path.dirname(os.path.realpath(__file__))
from . import b

還有另外一種更簡單的辦法:

import sys
sys.path.append("./")

import a


相關推薦

python在windowsimport其他模組注意事項

初學python,在同一目錄中建立了兩個py檔案:a.py和b.py,然後在a.py中import b.py from . import b ...... 在linux下執行沒有問題,但是在windows下就提示  ImportError: cannot import

WindowsRabbitMQ安裝及注意事項

Windows下RabbitMQ安裝及注意事項 簡介 背景 1.      RabbitMQ是一個由erlang開發的AMQP(Advanved Message Queue)的開源實現。 RabbitMQ是實現AMQP(高階訊息佇列協議)的訊

Linux學習筆記22——vim 的額外功能、其他vim注意事項

目錄   一、vim 的額外功能 1,區塊選擇(Visual Block) 2,多檔案編輯 3,多視窗功能 4,vim 的挑字補全功能 5,vim 環境設定與記錄: ~/.vimrc, ~/.viminfo 6,vim 常用指令示意圖 二、其他 vim

Mac使用gradlew命令注意事項

bash: ./gradlew:Permission denied 需要改變gradlew的許可權,請執行命令解決: chmod +x gradlew 執行完就可以了哦 如果你出現這個錯誤 bash:gradlew :command not found Mac 下

四數問題邏輯運算子的注意事項

給定一個包含 n 個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c ,使得 a + b + c = 0 ?找出所有滿足條件且不重複的三元組。 注意:答案中不可以包含重複的三元組。 例如, 給定陣列 nums = [-1, 0, 1, 2, -1, -

Linux環境安裝python的注意事項

一、linux下安裝Python的兩種方法 1.使用anaconda進行安裝      conda install/uninstall或切換到bin目錄下pip安裝 第一步:下載 anaconda for linux(找到對應的版本)   &n

win10系統python3安裝pygame注意事項

      最近使用python教程要用到pygame這個控制元件,折騰了一下發現在python3.6版本(win10 64位環境)下必須使用pygame-1.9.3-cp36-cp36m-win_amd64.whl 這個版本來安裝。而且必須用pip方式安裝,安裝命令為在C

hi3518e移植wifi模組注意事項

最近在海思平臺上移植mt7601和5370兩款wif模組,載入驅動和啟用網路裝置時都發現迴圈列印一個RTUSB_VendorRequest failed(-110),TxFlags=0x0, ReqType=IN, Req=0x7, Idx=0x1000,pAd->

微信跳一跳外掛【程式設計師版,附兩個版本的原始碼以及為防止跳幾就掛的注意事項,需要自己配置編譯器】

微信跳一跳怎麼開掛?微信跳一跳外掛指令碼在哪下載? 先來一張圖片(有圖有真相哈!) 建議不要刷太多,微信有防作弊措施,分數太高會上傳失敗(一千左右就行了)。 需要下載:Auto.js(js指令碼直譯器和執行環境)、跳一跳指令碼v2(有虛擬定位功能)、跳一跳指令碼v1(沒有

idea多模組專案新增模組注意事項

第一次在專案中新增模組,專案是springMVC架構的。首先要注意的是新增模組時,選擇maven,由於我需要新增的是後臺的netty服務,所以就不需要模板,填寫模組名稱,,下一步在Content root裡面填寫專案裡面模組的名稱 點選finish即完成模組新建。 博主的

AIX做定時任務注意事項

AIX定時任務和LINUX是一樣的,都是用crontab去做。那我們這裡就講解一下crontab的基本語法: minute         hour         day         month         dayofweek         command 例如

測試過程中,如何改變python的工作目錄,並引用新目錄其他模組或檔案

        緣由:由於測試工作需要,寫了大量的python程式碼,都放在工作目錄下面,後來發現些的程式碼檔案太多了,放在目錄下面顯得有些雜亂,索性整理了一番,剛一整理,問題來了。引用的各種檔案和包無法找到了。        原因:這些問題的出現時由於改變python程式

import模組匯入注意事項

1. import 搜尋路徑 a> 檢視搜尋路徑 import sys print(sys.path) b> 設定搜尋路徑 sys.path.app

win10VS2017中opencv3.1.0及contrib模組的安裝與配置注意事項

一、平臺與軟體下載 1.win10+vs2017+cmake3.10.2+opencv3.1.0+3.1.0contrib 注:opencv上官網下載,contirb模組與opencv版本相同 二、參考部落格 1.opencv 3.1.0與contrib下載好了之後,

hibernate中session的獲取使用以及其他注意事項

hibernate中session的獲取使用以及其他注意事項 前言:工作時,在同時使用Hibernate的getSession()、getHibernateTemplate()獲取Session後進行資料查詢時不是出現了"session is close"異常就是出現其他異常問題,痛定思痛,決定收集並整理相

compass的安裝及使用,以及常見命令列指令與注意事項、Compass核心模組

1、compass官網:compass-style.org compass是一個開源的書寫框架 正確安裝完ruby之後,使用gem install compass安裝 1、compass create learn-compass-init:通過compass直接建立一個compass

Ubuntuprotobuf的安裝、編譯及注意事項

Ubuntu下編譯protobuf 1.下載protobuf 下載地址:https://github.com/google/protobuf/releases 2.編譯protobuf 解壓下載的zip包,cd到protobuf的目錄下,執行以下指令: tar -xvf pro

log4net在windows 2003 iis6使用的注意事項

1、log4net 2.08 在windows 2003 IIS6 下使用時,無法將日誌記錄到資料庫,但可以記錄到檔案,最終確認net4.0版的log4net.dll編譯有問題,可能對net4.5有依賴,不能在windows2003上使用,解決方法很簡單,直接使用net2.0版本就可以了。 2、如果檔案型日

讀取相對路徑的.properties檔案內容注意事項

1、一般在網上搜的方法都是: public static void main(String[] args) throws IOException { Properties prop = new Properties(); InputStream in = Object.

springboot多執行緒開發注意事項

基於springboot的多執行緒程式開發過程中,由於本身也需要注入spring容器進行管理,才能發揮springboot的優勢。所以這篇文字主要用來記錄開發中兩者結合時需要注意的一些事項。 第一步我們把執行緒類的例項注入sping容器進行管理 @Configuration @SpringBootAppli