![](/img/trans.png)
[英]how do I update PYTHONPATH from /usr/local/bin/python to /usr/bin/python
[英]How do I install a python package to /usr/local/bin?
我正在尝试在我的 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 并且它工作正常并且导入错误没有't发生。如何安装包以便可以在任何目录中导入模块? 提前致谢...
尝试使用 pip 安装您的软件包
pip install --install-option="--prefix=$PREFIX_PATH" package_name
如此处所述使用 pip 将 Python 包安装到不同的目录中? 我会建议阅读什么是 1. pip 2. virtualenv
祝你好运:)
编辑:我发现这个包是用 pip 安装的,比如:
pip install --install-option="--prefix=/usr/local/bin" pyduino_mk
目前,您正在使用scripts
标签来安装您的 Python 代码。 这会将您的代码放在/usr/local/bin
,它不在PYTHONPATH
。
根据文档,当您想安装可执行脚本(您想从命令行调用的东西)时使用scripts
。 否则,您需要使用packages
。
我的方法是这样的:
pyduino/pyduino.py
类似packages=['pyduino']
scripts=[...]
为您的模块使用packages
标签会将其安装在/usr/local/lib/python...
,它位于PYTHONPATH
。 这将允许您使用import pyduino.pyduino.*
类的内容import pyduino.pyduino.*
脚本。
对于包装脚本部分:
如果脚本是从命令行触发的,最佳做法是隔离要执行的代码,例如:
def main():
# insert your code here
pass
if __name__ == '__main__':
main()
def main()
如上所述scripts
(与setup.py
处于同一级别)scripts/pyduino
在scripts/pyduino
:
#!/usr/bin/env python from pydiuno.pyduino import main if __name__ == '__main__': main()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.