我正在试图弄清楚如何打包python项目,以便我可以将它分发给一些同事。
当我运行python setup.py sdist --formats=zip
时,它会创建一个我可以pip install
的zip,但是当我运行该文件时,它无法导入我创建的类文件。
这是我项目的文件结构(可能不正确,但我没有完全构建这个项目,并考虑到包装):
├── README.md
├── requirements.txt
├── scanner
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── googleSheets.cpython-35.pyc
│ │ ├── merakiJsonHandler.cpython-35.pyc
│ │ └── wifiTester.cpython-35.pyc
│ ├── credentials.json
│ ├── googleSheets.py
│ ├── info.json
│ ├── merakiJsonHandler.py
│ ├── scan.py
│ ├── whatWap.py
│ └── wifiTester.py
└── setup.py
'' scan.py''是我们的"主要"将所有类汇集在一起的脚本。这是我的setup.py看起来像:
import setuptools
setuptools.setup(name='att-scanner',
version='0.1',
description='Meraki Wap/Wifi Scanner',
author='jsolum',
author_email='*****',
license='MIT',
packages=setuptools.find_packages(),
entry_points={
'console_scripts' : [
'mws = scanner:scan.py',],},
install_requires=['pyspeedtest', 'requests', 'gspread', 'oauth2client',],
include_package_data=True)
这是我的错误:
Traceback (most recent call last):
File "//anaconda/bin/mws", line 7, in <module>
from scanner import scan
File "//anaconda/lib/python3.5/site-packages/scanner/__init__.py", line 1, in
<module>
from googleSheets import SheetsController
ImportError: No module named 'googleSheets'
为什么不能scan.py
导入googleSheets.py
,我该怎么做才能导入它和我的其他类?
答案 0 :(得分:1)
from googleSheets import SheetsController
是绝对导入语句,因此一旦安装了包,您需要使用包名:
from scanner.googleSheets import SheetsController
from .googleSheets import SheetsController