我是新用户。 John Kealy 的回答有助于解决我的 Atom 1.40.1(使用 Script 3.18.1,)“..module not found”问题。来自 Python 3.7 解释器:
Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)] on win32
我的点子列表:
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
PS C:\Users\erica> pip list
Package Version
--------------- -----------
bleak 0.5.0
bricknil-bleak 0.3.1
cycler 0.10.0
kiwisolver 1.1.0
matplotlib 3.1.1
mpmath 1.1.0
numpy 1.16.4
pip 19.2.3
pybluez 0.22
pyparsing 2.4.0
python-dateutil 2.8.0
pythonnet 2.4.0
pyVIP 1.3.0
scipy 1.3.0
setuptools 41.2.0
six 1.12.0
sympy 1.4
virtualenv 16.7.4
wheel 0.33.4
winrt 1.0.19128.1
我右键单击 Python 解释器图标并从属性对话框中复制了目标字符串:
C:\Users\erica\AppData\Local\Programs\Python\Python37\python.exe
来自 John 提到的 python.coffee 脚本,其中“command:”最初为:
exports.Python =
'Selection Based':
command: 'python'
args: (context) -> ['-u', '-c', context.getCode()]
'File Based':
command: 'python'
args: ({filepath}) -> ['-u', filepath]
然后我修改为:
exports.Python =
'Selection Based':
command: 'C:/Users/erica/AppData/Local/Programs/Python/Python37/python'
args: (context) -> ['-u', '-c', context.getCode()]
'File Based':
command: 'C:/Users/erica/AppData/Local/Programs/Python/Python37/python'
args: ({filepath}) -> ['-u', filepath]
所以现在我可以在我的 test.py 文件中包含此代码:
import bluetooth as bt
for e in bt.__dict__:
print(e)
...和 cntrl-shift-b 到我的 Atom 屏幕底部的脚本输出窗口中的结果:
[Command: C:/Users/erica/AppData/Local/Programs/Python/Python37/python -u C:\Users\erica\AppData\Local\Programs\Python\Python37\test.py]
__name__
__doc__
__package__
__loader__
__spec__
__path__
__builtins__
__file__
__cached__
sys
os
btcommon
struct
binascii
L2CAP
RFCOMM
PORT_ANY
SDP_SERVER_CLASS
BROWSE_GRP_DESC_CLASS
PUBLIC_BROWSE_GROUP
SERIAL_PORT_CLASS
LAN_ACCESS_CLASS
DIALUP_NET_CLASS
IRMC_SYNC_CLASS
OBEX_OBJPUSH_CLASS
OBEX_FILETRANS_CLASS
IRMC_SYNC_CMD_CLASS
HEADSET_CLASS
CORDLESS_TELEPHONY_CLASS
AUDIO_SOURCE_CLASS
AUDIO_SINK_CLASS
AV_REMOTE_TARGET_CLASS
ADVANCED_AUDIO_CLASS
AV_REMOTE_CLASS
VIDEO_CONF_CLASS
INTERCOM_CLASS
FAX_CLASS
HEADSET_AGW_CLASS
WAP_CLASS
WAP_CLIENT_CLASS
PANU_CLASS
NAP_CLASS
GN_CLASS
DIRECT_PRINTING_CLASS
REFERENCE_PRINTING_CLASS
IMAGING_CLASS
IMAGING_RESPONDER_CLASS
IMAGING_ARCHIVE_CLASS
IMAGING_REFOBJS_CLASS
HANDSFREE_CLASS
HANDSFREE_AGW_CLASS
DIRECT_PRT_REFOBJS_CLASS
REFLECTED_UI_CLASS
BASIC_PRINTING_CLASS
PRINTING_STATUS_CLASS
HID_CLASS
HCR_CLASS
HCR_PRINT_CLASS
HCR_SCAN_CLASS
CIP_CLASS
VIDEO_CONF_GW_CLASS
UDI_MT_CLASS
UDI_TA_CLASS
AV_CLASS
SAP_CLASS
PNP_INFO_CLASS
GENERIC_NETWORKING_CLASS
GENERIC_FILETRANS_CLASS
GENERIC_AUDIO_CLASS
GENERIC_TELEPHONY_CLASS
UPNP_CLASS
UPNP_IP_CLASS
UPNP_PAN_CLASS
UPNP_LAP_CLASS
UPNP_L2CAP_CLASS
VIDEO_SOURCE_CLASS
VIDEO_SINK_CLASS
SDP_SERVER_PROFILE
BROWSE_GRP_DESC_PROFILE
SERIAL_PORT_PROFILE
LAN_ACCESS_PROFILE
DIALUP_NET_PROFILE
IRMC_SYNC_PROFILE
OBEX_OBJPUSH_PROFILE
OBEX_FILETRANS_PROFILE
IRMC_SYNC_CMD_PROFILE
HEADSET_PROFILE
CORDLESS_TELEPHONY_PROFILE
AUDIO_SOURCE_PROFILE
AUDIO_SINK_PROFILE
AV_REMOTE_TARGET_PROFILE
ADVANCED_AUDIO_PROFILE
AV_REMOTE_PROFILE
VIDEO_CONF_PROFILE
INTERCOM_PROFILE
FAX_PROFILE
HEADSET_AGW_PROFILE
WAP_PROFILE
WAP_CLIENT_PROFILE
PANU_PROFILE
NAP_PROFILE
GN_PROFILE
DIRECT_PRINTING_PROFILE
REFERENCE_PRINTING_PROFILE
IMAGING_PROFILE
IMAGING_RESPONDER_PROFILE
IMAGING_ARCHIVE_PROFILE
IMAGING_REFOBJS_PROFILE
HANDSFREE_PROFILE
HANDSFREE_AGW_PROFILE
DIRECT_PRT_REFOBJS_PROFILE
REFLECTED_UI_PROFILE
BASIC_PRINTING_PROFILE
PRINTING_STATUS_PROFILE
HID_PROFILE
HCR_PROFILE
HCR_PRINT_PROFILE
HCR_SCAN_PROFILE
CIP_PROFILE
VIDEO_CONF_GW_PROFILE
UDI_MT_PROFILE
UDI_TA_PROFILE
AV_PROFILE
SAP_PROFILE
PNP_INFO_PROFILE
GENERIC_NETWORKING_PROFILE
GENERIC_FILETRANS_PROFILE
GENERIC_AUDIO_PROFILE
GENERIC_TELEPHONY_PROFILE
UPNP_PROFILE
UPNP_IP_PROFILE
UPNP_PAN_PROFILE
UPNP_LAP_PROFILE
UPNP_L2CAP_PROFILE
VIDEO_SOURCE_PROFILE
VIDEO_SINK_PROFILE
SERVICE_RECORD_HANDLE_ATTRID
SERVICE_CLASS_ID_LIST_ATTRID
SERVICE_RECORD_STATE_ATTRID
SERVICE_ID_ATTRID
PROTOCOL_DESCRIPTOR_LIST_ATTRID
BROWSE_GROUP_LIST_ATTRID
LANGUAGE_BASE_ATTRID_LIST_ATTRID
SERVICE_INFO_TIME_TO_LIVE_ATTRID
SERVICE_AVAILABILITY_ATTRID
BLUETOOTH_PROFILE_DESCRIPTOR_LIST_ATTRID
DOCUMENTATION_URL_ATTRID
CLIENT_EXECUTABLE_URL_ATTRID
ICON_URL_ATTRID
SERVICE_NAME_ATTRID
SERVICE_DESCRIPTION_ATTRID
PROVIDER_NAME_ATTRID
SDP_UUID
UDP_UUID
RFCOMM_UUID
TCP_UUID
TCS_BIN_UUID
TCS_AT_UUID
OBEX_UUID
IP_UUID
FTP_UUID
HTTP_UUID
WSP_UUID
BNEP_UUID
UPNP_UUID
HIDP_UUID
HCRP_CTRL_UUID
HCRP_DATA_UUID
HCRP_NOTE_UUID
AVCTP_UUID
AVDTP_UUID
CMTP_UUID
UDI_UUID
L2CAP_UUID
IAC_GIAC
IAC_LIAC
BluetoothError
is_valid_address
is_valid_uuid
to_full_uuid
sdp_parse_size_desc
sdp_parse_uuid
sdp_parse_int
sdp_parse_data_elementSequence
sdp_parse_data_element
sdp_parse_raw_record
sdp_make_data_element
__version__
_dbg
have_widcomm
dll
sysroot
_msbt
msbt
bt
discover_devices
read_local_bdaddr
lookup_name
BluetoothSocket
advertise_service
stop_advertising
find_service
DeviceDiscoverer
[Finished in 0.417s]
另外,来自inquiry.py:
import bluetooth
print("performing inquiry...")
nearby_devices = bluetooth.discover_devices(
duration=8, lookup_names=True, flush_cache=True, lookup_class=False)
print("found %d device(s)" % len(nearby_devices))
for addr, name in nearby_devices:
try:
print(" %s - %s" % (addr, name))
except UnicodeEncodeError:
print(" %s - %s" % (addr, name.encode('utf-8', 'replace')))
...再次 cntrl-shift-b 到我的 Atom 屏幕底部的脚本输出窗口中的结果:
performing inquiry...
found 1 device(s)
98:FD:B4:47:0D:14 - HP Bluetooth Mouse X4000b
[Finished in 10.601s]
似乎我现在可以访问我的 Python 模块了。