我正试图在我的ubuntu上安装一个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
# 4 - Beta
# 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目录中。但是,当我导入/usr/local/bin目录外的模块时,会发生导入错误。我尝试将路径更改为/usr/local/bin,但它工作正常,不会发生导入错误。如何安装程序包以便导入任何目录中的模块?提前谢谢。。。
目前,您正在使用
scripts
标记来安装python代码。这将把您的代码放入/usr/local/bin
,而不是PYTHONPATH
。根据the documentation,当您想安装可执行脚本(您想从命令行调用的东西)时,可以使用
scripts
。否则,您需要使用packages
。我的方法是这样的:
pyduino/pyduino.py
,类似于packages=['pyduino']
scripts=[...]
安装它使用模块的
packages
标记将其安装在/usr/local/lib/python...
中,即PYTHONPATH
。这将允许您导入带有import pyduino.pyduino.*
之类内容的脚本。对于包装器脚本部分:
最佳实践是,如果脚本是从命令行触发的,则隔离要执行的代码,例如:
def main()
scripts
(与setup.py
处于同一级别)scripts/pyduino
在
scripts/pyduino
中:尝试使用以下命令安装带有pip的软件包
如本文所述Install a Python package into a different directory using pip? 我建议你读一下什么是1。第二点。虚拟人
祝你好运:)
编辑:我发现软件包安装了pip,如下所示:
相关问题 更多 >
编程相关推荐