[英]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.