我正在尝试在我的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,它运行正常,导入错误没有发生。如何安装软件包以便我可以在任何目录中导入模块?提前谢谢......
答案 0 :(得分:0)
尝试使用此
安装您的软件包pip install --install-option="--prefix=$PREFIX_PATH" package_name
如此处所述Install a Python package into a different directory using pip? 我建议阅读1. pip 2. virtualenv
祝你好运:)编辑:我发现软件包的安装方式如下:
pip install --install-option="--prefix=/usr/local/bin" pyduino_mk
答案 1 :(得分:0)
目前,您正在使用Activity
标记来安装您的python代码。这会将您的代码放在scripts
中,而不是/usr/local/bin
。
根据the documentation,如果要安装可执行脚本(要从命令行调用的内容),则使用PYTHONPATH
。否则,您需要使用scripts
。
我的方法是这样的:
packages
pyduino/pyduino.py
packages=['pyduino']
使用模块的scripts=[...]
标记会将其安装在packages
中,/usr/local/lib/python...
。这将允许您使用PYTHONPATH
。
对于包装器脚本部分:
最佳做法是在脚本从命令行触发时隔离要执行的代码:
import pyduino.pyduino.*
def main():
# insert your code here
pass
if __name__ == '__main__':
main()
def main()
(与scripts
处于同一级别)setup.py
:
scripts/pyduino