设置python路径

在python开发应用,我们多数是通过pip、easy_install等工具将需要的python安装到自己机子上就可以应用了,但是我们完成开发给用户使用时,程序运行环境就是一个问题。当然,你可以要求客户按照你的方法安装依赖的库,这种方法在部署趋向自动化的今天就显得机械了。

将库直接放在python安装目录下

# 查看python库的安装路径
$ python -c "from distutils.sysconfig import get_python_lib; print (get_python_lib())"
/usr/lib/python2.7/site-packages# 查看库的路径
$ python -c "import hbase; print hbase.__file__"
/usr/lib/python2.7/site-packages/hbase/__init__.pyc# 查看可执行文件路径
$ python -c "import sys; print sys.executable"
/usr/bin/python

以上我虚拟机上的路径,这样,你开发的python程序无需关注python库的路径了。

.pth文件中添加路径

通过easy_install安装的python,都会将库的路径放在site-packages目录下的easy-install.pth文件中

$ pwd
/usr/lib/python2.7/site-packages
[gongsuo@localhost site-packages]$ cat easy-install.pth 
import sys; sys.__plen = len(sys.path)
./supervisor-3.1.3-py2.7.egg
./meld3-1.0.2-py2.7.egg
./Sphinx-1.3.1-py2.7.egg
./sphinx_rtd_theme-0.1.8-py2.7.egg
./alabaster-0.7.6-py2.7.egg
./Babel-2.0-py2.7.egg
./snowballstemmer-1.2.0-py2.7.egg
./docutils-0.12-py2.7.egg
./Pygments-2.0.2-py2.7.egg
./Jinja2-2.8-py2.7.egg
./six-1.9.0-py2.7.egg
./pytz-2015.4-py2.7.egg
./MarkupSafe-0.23-py2.7.egg
./shadowsocks-2.8.2-py2.7.egg
./Fabric-1.10.2-py2.7.egg
./paramiko-1.15.2-py2.7.egg
./ecdsa-0.13-py2.7.egg
./pip-7.1.2-py2.7.egg
import sys; new=sys.path[sys.__plen:]; del sys.path[sys.__plen:]; p=getattr(sys,'__egginsert',0); sys.path[p:p]=new; sys.__egginsert = p+len(new)

同样的我们可以在此目录创建自己的.pth文件,然后把自己所依赖的库或自己开发的库的路径添加到此文件中

动态添加库的路径

import sys
sys.path.append('lib_path')

设置PYTHONPATH环境变量

将python库所在的路径添加到PYTHONPATH环境变量中。

https://github.com/torproject/chutney中实例

$ cat chutney 
#!/bin/sh

export PYTHONPATH="`dirname $0`/lib:${PYTHONPATH}"
# Use python2, python, python3 in that order
[ -n "$PYTHON" ] || {command -v python2 >/dev/null 2>&1 && PYTHON=python2 || \command -v python >/dev/null 2>&1 && PYTHON=python # || \
#   Not yet supported 
#   command -v python3 >/dev/null 2>&1 && PYTHON=python3
}
# Use python2 if the checks that use "command" fail
${PYTHON:=python2} -m chutney.TorNet "$@"

chutney作为可执行的shell程序,设置PYTHONPATH环境变量,然后运行对应的程序。

请使用python -h获取python的一下帮助。

参考

  • Windows下Python添加库(模块)路径

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/508667.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux动态库查找路径以及依赖关系梳理

编译时与运行时库的路径 linux下,编译时与运行时库的搜索路径是不同的 运行时动态库的路径搜索顺序 LD_PRELOAD环境变量,一般用于hack 编译目标代码时指定的动态库搜索路径(指的是用 -wl,rpath 或-R选项而不是-L),readelf -d命令可以查看编…

eclipse--android开发环境搭建教程

引言 在windows安装Android的开发环境不简单也说不上算复杂,但由于国内无法正常访问google给android开发环境搭建带来不小的麻烦。现将本人搭建过程记录如下,希望会对投身android开发的小伙伴有所帮助。 android开发环境部署过程 安装JDK环境 下载安装…

pip工具使用总结以及常用库PIL、freetype的安装

pip工具安装使用 pip为python库软件管理工具pip docs 安装 wget https://bootstrap.pypa.io/ez_setup.py -O - | python 安装setuptools https://pypi.python.org/pypi/setuptoolswget https://bootstrap.pypa.io/get-pip.py -O - | python 安装pip工具 ttps://pypi.python.…

【技巧】Chrome应用技巧

把Chrome浏览器变成文本编辑器 在浏览器地址栏中输入一行代码&#xff1a;data:text/html, <html contenteditable>&#xff0c;回车即可把浏览器变临时编辑器。【CtrlShiftJ】调出JavaScript控制台&#xff0c;在控制台输入&#xff1a; document.body.contentEditable…

eclipse--python开发环境搭建

pydev插件介绍 PyDev is a Python IDE for Eclipse pydev官方网站&#xff1a;http://www.pydev.org/ 在Eclipse中安装pydev插件 启动Eclipse, 点击Help->Install New Software… 在弹出的对话框中&#xff0c;点Add 按钮。 Name中填:Pydev, Location中填http://pydev.or…

Win7虚拟无线AP以及Android手机抓包

设备要求 Windows7操作系统装有无线网卡的笔记本或台式机无线网卡必须支持“承载网络” 查看无线网卡是否支持“承载” 方法一: 开始菜单→所有程序→附件→命令提示符→右键“以管理员权限运行”; 键入命令“netsh wlan show drivers”,查看“支持承载网络”这一项,如果是…

CMD命令之BAT脚本路径信息

CD命令解疑 cd是chdir的缩写&#xff0c;命令详解参见cd /? 可以看到/d参数的解释如下&#xff1a; 使用 /D命令行开关&#xff0c;除了改变驱动器的当前目录之外&#xff0c;还可改变当前驱动器。 通常我们在xp系统中打开cmd窗口时&#xff0c;会显示 C:\Documents and Se…

Ubuntu开发环境搭建

在虚拟中试玩Ubuntu1604版本&#xff0c;有关安装后一些配置记录如下&#xff0c;以备后用。 简单设置 root密码设置 虚拟机安装完成后&#xff0c;默认不弃用root用户&#xff0c;需要给root设置密码后使用 sudo passwd root终端加入右键中 将终端加入右键后&#xff0c;在某…

Python GUI Programming (Tkinter)

Tkinter编程实例 #!/usr/bin/python #coding:utf-8from Tkinter import * import sysreload(sys) sys.setdefaultencoding(utf-8)class GUI_WINDOWS:def __init__(self, root):self.root Frame(root)self.driver Noneself.friendEdit Noneself.bStopQuery Falseself.loadF…

【ubuntu 22.04】安装vscode并配置正常访问应用商店

注意&#xff1a;要去vscode官网下载deb安装包&#xff0c;在软件商店下载的版本不支持输入中文 在ubuntu下用火狐浏览器无法访问vscode官网&#xff0c;此时可以手动进行DNS解析&#xff0c;打开DNS在线查询工具&#xff0c;解析以下主机地址&#xff08;复制最后一个IP地址&a…

Appium安装使用总结

开发环境搭建 搭建java JDK与Android SDK环境下载安装nodejs下载安装Appium 问题答疑 在测试中adb devices查询无缘无故多出陌生的虚拟设备 同事的经验是重启电脑&#xff0c;莫名其妙的设备消失&#xff1b;自我总结就是重启adb服务&#xff0c;adb kill-server&#xff0…

Python使用笔记总结目录

从2012年接触python&#xff0c;陆陆续续使用python将近3年。从最开始的使用python进行xml解析&#xff0c;到使用python做爬虫开发&#xff0c;再到最近半年的使用深度学习进行图像识别&#xff0c;python简洁易用&#xff0c;丰富的资源库&#xff0c;活跃的社区&#xff0c;…

原始套接字编程(1)

Linux下原始套接字的原理 创建原始套接字&#xff1a; socket(AF_NET, SOCK_RAW, protocol);1. 参数protocol用来致命所接收的协议包&#xff0c;如果是像IPPROTO_TCP(6)这种非0、非255的协议&#xff0c;能接收ip头为protocol域的数据包&#xff0c;包括IP头&#xff0c;协议…

VS 使用技能总结

常用快捷键 复制/剪切/删除整行代码 1&#xff09;如果你想复制一整行代码&#xff0c;只需将光标移至该行&#xff0c;再使用组合键“CtrlC”来完成复制操作&#xff0c;而无需选择整行。 2&#xff09;如果你想剪切一整行代码&#xff0c;只需将光标移至该行&#xff0c;再使…

vim使用总结

vim使用命令 【自动补全操作】 Ctrl n / Ctrl p 自动补全字符串Ctrl x Ctrl f 自动补全文件名 【多文件操作】 打开多个文件&#xff1a; vim file1 file2 … filen 在同一个窗口中打开所有想要打开的文件vim -o file1 file2 … filen 打开一个编辑会话&#xff0c;水平分…

内核编程之Hello_kernel

前言 通过hello_kernel编程达到以下目的: 内核编程框架了解模块参数调用模块间函数调用内核模块相关关的命令使用 环境准备 内核源码树准备,有两种方法: 方法1&#xff1a;从kernel.org下载内核源码&#xff0c;手动编译 方法2&#xff1a;通过yum安装与系统版本一致的内…

机器学习基本库学习

前言 之前做过将近一年的python爬虫&#xff0c;python语言基础还是有的。眼下机器学习如日中天&#xff0c;项目中有用到机器学习对采集的内容进行分类的功能&#xff0c;闲暇之际学习一下相关的库&#xff0c;以期待money 简介 numpy python科学计算基础库matplotlib Ma…

unixODBC的使用

unixODBC介绍 unixODBC is a complete, free/open, ODBC solution for UNIX/Linux. 官网 http://www.unixodbc.org/源码下载url ftp://ftp.unixodbc.org/pub/unixODBC/ unixODBC版本目前有两套&#xff0c;soname为libodbc.so.1与soname为libodbc.so.2 对于使用libodbc.so.…

Jupyter notebook应用总结

简介 Jupyter Notebook 是一个交互式笔记本程序, 其有丰富的快捷键来便捷的完成工作。Notebook 有两种键盘输入模式。即命令模式和编辑模式&#xff0c;这与 Vim 有些类似。在编辑模式下&#xff0c;可以往单元中键入代码或文本&#xff0c;此时单元格被绿色的框线包围&#x…

opencv常用函数

给源图像增加边界 cv2.copyMakeBorder(src,top, bottom, left, right ,borderType,value) src:源图像top,bottem,left,right: 分别表示四个方向上边界的长度 borderType: 边界的类型BORDER_REFLICATE  # 直接用边界的颜色填充&#xff0c; aaaaaa | abcdefg | ggggBORDER_RE…