簡體   English   中英

Python的新手:導入的庫

[英]Newbie to Python: Imported Lib

我有這個結構

02.SensorTag/
    sensortag_example.py
    bluepy/bluepy/sensortag.py
    bluepy/bluepy/btle.py

因此,sensortag_example.py正在導入sensortag.py

import bluepy
from bluepy.bluepy import sensortag

當我運行代碼時,它抱怨從sensortag導入。

Traceback (most recent call last):
  File "sensortag_example.py", line 2, in <module>
    from bluepy.bluepy import sensortag 
  File "/home/pi/Development/02.SensorTag/bluepy/bluepy/__init__.py", line 3, in <module>
    from . import sensortag
  File "/home/pi/Development/02.SensorTag/bluepy/bluepy/sensortag.py", line 1, in <module>
    from bluepy.btle import UUID, Peripheral, DefaultDelegate, AssignedNumbers
ImportError: No module named 'bluepy.btle'

我試圖添加一條新路徑,但是沒有用。 如果我將程序移至bluepy的第一個文件夾,並將導入更改為“ from bluepy import sensortag”,則可以使用,但我需要導入其他庫,因此我不想將其放入bluepy文件夾。

我正在嘗試運行以下代碼: https : //gist.github.com/atotto/ae603b962115eef703c0011d8e652ea3

謝謝,最好的問候,Edu

由於sensortag.py是在同一個目錄中btle.py ,添加一個. 在導入之前

from .btle import UUID, Peripheral, DefaultDelegate, AssignedNumbers

這稱為相對導入: https : //docs.python.org/2.5/whatsnew/pep-328.html

由於btle.py和sensortag.py都位於同一目錄中,因此通過查看錯誤,我假設您嘗試從先前的目錄導入它。 因此,從.btle import UUID放置在sensortag.py中應該可以解決此問題。

您應該創建兩個init .py文件。

02.SensorTag/
    sensortag_example.py
    bluepy/__init__.py
    bluepy/bluepy/__init__.py
    bluepy/bluepy/sensortag.py
    bluepy/bluepy/btle.py

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM