【发布时间】:2016-08-13 18:02:56
【问题描述】:
我正在尝试使用我编写的 setup.py 安装一个 python 包。setup.py 看起来像这样:
from setuptools import setup
try:
from setuptools import setup
except ImportError:
from distutils.core import setup
setup(
name = 'pyduino',
description = 'PyDuino project aims to make python interactive with hardware particularly arduino.',
url = '###',
keywords = 'python arduino',
author = '###',
author_email = '###',
version = '0.0.0',
license = 'GNU',
packages = ['pyduino'],
install_requires = ['pyserial'],
classifiers = [
# How mature is this project? Common values are
# 3 - Alpha
# 5 - Production/Stable
'Development Status :: 3 - Alpha',
'Intended Audience :: Developers',
'Topic :: Software Development :: Build Tools',
'Programming Language :: Python :: 2',
'Programming Language :: Python :: 2.6',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.3',
'Programming Language :: Python :: 3.4',
'Programming Language :: Python :: 3.5',
],
scripts=['pyduino/pyduino.py'],
)
但是这个包安装在目录/usr/local/bin.我不能在其他目录中导入包的模块。有没有办法全局安装它,我可以在所有目录中使用?提前谢谢....
【问题讨论】:
-
您的代码仅是给定的脚本?此外,它应该是 script 还是 package*/*module?如果您指定
setup一个模块/包,它将被放置在您可以从everywere 导入它的地方。然而,脚本不是可导入的,它们应该执行。 -
我可以在 /usr/local/bin 中导入模块 pyduino 但不能在其他目录中。如果我将路径设置为 /usr/local/bin 则导入错误不会'不会发生。但我不想每次都设置路径。所以,无论如何要安装以便我可以使用我的模块?
-
是的,我明白这一点。我的问题是:
pyduino是 script 还是 module?如果您想从任何位置导入它,那么它是一个模块,您应该使用py_modules=['pyduino/pyduino.py']而不是使用scripts=...。 -
是的..对不起。它是一个脚本。它有一个类 pyduino。我想从 pyduino.py 导入那个类。那么,我该怎么做呢?
-
正如我所说:如果你有一个模块,你想从任何地方导入,你只需将它放在
py_modules或packages下,如果它在一个包中。如果这仍然不清楚,我建议您在all 问题中澄清您正在处理的文件、它们在目录/包/模块中的结构以及您希望获得的最终结果安装时。