Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将Python包安装到虚拟env中,并在普通shell中访问CLI命令

如何将Python包安装到虚拟env中,并在普通shell中访问CLI命令
EN

Stack Overflow用户
提问于 2017-03-31 01:25:11
回答 3查看 413关注 0票数 5

对于可能干扰其他包的大型Python包,建议将它们安装到自己的虚拟环境中,一些Python包将CLI命令公开给shell。

是否有一种方法可以将这样的包安装到自己的虚拟环境中,但是可以从普通的shell访问CLI命令,而无需事先手动切换到这个虚拟环境?

这里有一个例子:当我安装csvkit

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install csvkit

我的shell中有命令csvcutcsvlookcsvgrep和其他命令。但是,如果我不想在我的系统中安装cvskit并将其安装在虚拟环境中,比如在~/venvs/csvkit,那么只有在手动激活了环境csvkit之后,才有csvkit可用。

是否有一种方法来创建虚拟环境并在其中安装csvkit,以便像csvcut这样的命令在运行之前激活环境本身?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-09-10 22:50:33

一个更新的工具,仍然是非常好的维护是pipx -在独立环境中安装和运行Python应用程序。它的工作原理类似于pipsi:

  1. 首先安装pipx。(见pipx装置)
  2. 然后发行: pipx安装csvkit
  3. 最后,确保pipx的bin目录(通常是~/.local/bin)在您的路径中。

请注意,pipx有用于维护和检查生成的venvs的附加命令--请参阅pipx --help

票数 4
EN

Stack Overflow用户

发布于 2017-03-31 02:04:58

您可以创建别名,如csvcut,并将它们指向source ~/venvs/csvkit/bin/activate && csvcut && source deactivate

如果此程序接受参数,则可以使用函数并在.bashrc文件中定义:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
csvcut() {
    #do things with parameters like $1 such as
    source ~/venvs/csvkit/bin/activate
    csvcut $1 $2 $3 $4 $5
    deactivate
}

要调用函数,只需使用csvcut <your_parameter>命令即可。

票数 0
EN

Stack Overflow用户

发布于 2017-12-20 17:41:55

使用pipsi。这里是来自项目的ReadMe的描述:

pipsi将每个包安装到~/..local/venvs/PKGNAME中,然后将所有新脚本符号链接到~/..local/bin(这些脚本可以分别由PIPSI_HOME和PIPSI_BIN_DIR env变量更改)。 与PKGNAME user相比,每个PKGNAME都安装在自己的虚拟环境中,因此您不必担心不同的PKGNAME具有冲突的依赖关系。

这对csvkit很有好处

  1. 首先安装pipsi
  2. 然后发行: pipsi安装csvkit
  3. 最后,确保pipsi的bin目录(通常是~/.local/bin)在您的路径中。

就这样!现在您可以在comamnd行上键入。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
csvcut --help

它在自己的虚拟环境中调用csvcut

不需要手动激活virtualenv,而且您的系统Python不会受到额外包的污染(除了pipsi包之外)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43137114

复制
相关文章
初见Flask
Flask 是一个基于 Python 开发并且依赖 jinja2 模板和 Werkzeug WSGI 服务的一个微型框架,对于 Werkzeug 本质是 Socket 服务端,其用于接收 http 请求并对请求进行预处理,然后触发 Flask 框架,开发人员基于 Flask 框架提供的功能对请求进行相应的处理,并返回给用户,如果要返回给用户复杂的内容时,需要借助 jinja2 模板来实现对模板的处理,将模板和数据进行渲染,将渲染后的字符串返回给用户浏览器。
py3study
2020/01/03
8770
python中执行shell命令的几个方
最近有个需求就是页面上执行shell命令,第一想到的就是os.system, 代码如下:
py3study
2020/01/06
3K0
shell中 的 export命令
语  法:export [-fnp][变量名称]=[变量设置值] 补充说明:在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅限于该次登陆操作。 参  数:  -f  代表[变量名称]中为函数名称。  -n  删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。  -p  列出所有的shell赋予程序的环境变量。
全栈程序员站长
2022/10/04
1.2K0
在python脚本中执行shell命令的方法
最近在写python的一些脚本,之前使用python都是在django中使用,可能大部分内容都是偏向于后端开发方面的,最近在写一些脚本的时候,发现了python的另外一种面貌,发现还挺有意思,分享一下,共大家参考。
AsiaYe
2019/12/18
5.3K0
Android中的shell循环命令
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/163957.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/15
7030
Linux Shell中的命令替换
Shell脚本中最有用的特性之一就是可以从命令输出中提取信息,并将其赋给变量。有两种方法可以将命令输出赋值给变量。
Tyan
2019/05/25
3.4K0
python中argparse 命令行参数解析包
argparse 是python自带的命令行参数解析包,可以用来方便地读取命令行参数,当你的代码需要频繁地修改参数的时候,使用这个工具可以将参数和代码分离开来,让你的代码更简洁,适用范围更广
Python学习者
2023/03/30
7900
Linux 命令(94)—— env 命令
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
恋喵大鲤鱼
2019/11/13
2.5K0
你的 Python 包都装到哪了?
授人以鱼不如授人以渔,要解决这类问题,你得知道Python是如何找包的。希望看完这篇文章,能有所帮助。(主要还是下次再有人问,我就可以链接甩脸了哈哈)
岂不美哉Frost
2019/11/29
5.4K1
Shell中的命令别名、命令历史和命令替换
命令别名 可以使用alias命令查看和修改命令别名。 下面是一个查看系统中命令别名的示例: $ alias alias alert='notify-send --urgency=low -i "$([
mwangblog
2018/07/04
1.5K0
python中的shell操作
这个函数可以调用shell运行命令行command并且返回它的返回值。试一下在python的解释器里输入os.system(”ls -l”),就可以看到”ls”列出了当前目录下的文件。可以说,通过这个函数,python就拥有了shell的所有能力。呵呵。。不过,通常这条命令不 需要用到。因为shell常用的那些命令在python中通常有对应而且同样简洁的写法。
py3study
2020/01/13
8600
Python Python中的包
Python中的包 什么是python的包与模块 包就是文件夹,包中还可以有包,也就是文件夹 一个个python文件就是模块 包的身份证 __init__.py是每一个python包里必须存在的文件 如何创建包 要有一个主题,明确功能,方便使用 层次分明,调用清晰 包的导入 import 功能 将python中的某个包(或模块),导入到当前的py文件中 用法 import package 参数 package:被导入的包的名字 要求 只会拿到对应包下__init__中的功能或当前模块下的功能 模块的导入 f
Zkeq
2022/05/18
2.2K0
linux中的清屏命令_shell清屏
在Linux中类似的命令分别为 ls 和 clear,如果不习惯,我们可以用别名来使用相同的命令:
全栈程序员站长
2022/11/04
2K0
shell中的交互read命令使用
在Shell脚本中,read命令用于从标准输入读取用户输入的数据,并将其保存到指定的变量中。这使得我们可以编写交互式Shell脚本,与用户进行交互,根据用户输入执行不同的操作。本文将详细介绍read命令的用法,并提供一些示例。
玖叁叁
2023/04/10
9030
安卓的shell命令_android执行linux命令
adb devices 查询电脑已连接的设备 adb shell pm list packages 列出目标设备中已安装的应用程序包 adb shell pm list packages -f 列出目标设备中已安装的应用程序包的具体位置 adb uninstall xxx 卸载或删除的应用包xxx adb pull /data/app/com.tencent.tbs-1/base.apk 将手机已安装程序的apk下载到你所在的文件夹
全栈程序员站长
2022/11/07
3.2K0
webpack中mode、NODE_ENV、DefinePlugin、cross-env的使用
通过选择 development, production 或 none 之中的一个,来设置 mode 参数,你可以启用 webpack 内置在相应环境下的优化。其默认值为 production。
用户3258338
2021/04/01
2.9K0
webpack中mode、NODE_ENV、DefinePlugin、cross-env的使用
Eclipse中Maven打包程序并在Linux中运行
Eclipse中Maven打包程序并在Linux中运行 1 在Eclipse中新建Maven工程 新建后的maven工程如下: 新建Maven工程的默认pom.xml如下,不需要修改: <projec
闵开慧
2018/03/30
4.3K0
Eclipse中Maven打包程序并在Linux中运行
IDEA导入第三方jar包, 并在Maven中打包该jar包
需要注意的是: groupId,artifactId 无需和jar包中完全一致, 只需我们自定义即可. 版本我们根据实际情况添加
时间静止不是简史
2023/08/09
4K0
IDEA导入第三方jar包, 并在Maven中打包该jar包
.env[mode]文件中如何添加注释
Vue-Cli 允许我们在项目根目录创建.env.[mode]文件来设置一些打包编译的启动参数,通过执行脚本的时候加mode参数,指定不同环境需要加载的配置文件
甜点cc
2022/10/05
2.2K0
.env[mode]文件中如何添加注释
Shell 中的命令替换及参数扩展
今天和大家分享的主要是 “命令替换” 以及 “参数扩展” 。 -- 季文康 本文导航 ◈ 前言 00% ◈ 什么是命令替换 14% ◈ 1、一层 SHELL 嵌套 15% ◈ 2、二层 SHELL 嵌套 17% ◈ 3、进阶 30% ◈ 什么是参数扩展 44% ◈ 1、实例一 46% ◈ 2、实例二 52% ◈ 什么是变量扩展 57% ◈ 1、变量替换 65% ◈ 2、变量切片 74% ◈ 3、变量修改 80% ◈ 更深入学习,探索资料 95% 转载自 | http://www.cnblogs.com/
企鹅号小编
2018/01/30
1.5K0
Shell 中的命令替换及参数扩展

相似问题

python虚拟env中的批处理命令

11

创建python虚拟env的Oozie shell操作

11

安装到虚拟env不起作用

11

python如何使用env执行shell命令

13

不使用Conda将Python包安装到Conda Env

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文