相关疑难解决方法(0)

如何最好地包含其他脚本?

通常包含脚本的方式是"源"

例如:

main.sh:

#!/bin/bash

source incl.sh

echo "The main script"
Run Code Online (Sandbox Code Playgroud)

incl.sh:

echo "The included script"
Run Code Online (Sandbox Code Playgroud)

执行"./main.sh"的输出是:

The included script
The main script
Run Code Online (Sandbox Code Playgroud)

...现在,如果您尝试从其他位置执行该shell脚本,除非它在您的路径中,否则无法找到包含.

确保脚本可以找到包含脚本的好方法是什么,特别是如果脚本需要可移植的话?

bash

338
推荐指数
11
解决办法
31万
查看次数

从bash脚本调用conda source activate

我正试图通过bash脚本激活我的conda env.即使脚本运行正常并且我的PATH似乎在脚本中被更改,它也会在脚本终止后以某种方式重置.我可以source activate test从cmd线调用,它工作正常.下面的输出示例.

脚本:

PycharmProjects/test » cat ./example.sh echo "before calling source: $PATH" source activate test echo "after calling source: $PATH"

输出:

./example.sh
before calling source: /Use rs/me/miniconda3/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin

discarding /Users/me/miniconda3/bin from PATH
prepending /Users/me/miniconda3/envs/test/bin to PATH

after calling source: /Users/me/miniconda3/envs/test/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin`
Run Code Online (Sandbox Code Playgroud)

但如果我echo $PATH在脚本完成后,你可以看到它$PATH没有改变(即没有/Users/me/miniconda3/envs/test/bin):

PycharmProjects/test » echo $PATH /Users/me/miniconda3/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin

macos shell virtualenv conda

27
推荐指数
4
解决办法
2万
查看次数

使用Paramiko SSH设置virtualenv

我在Windows中使用Python和Django的经验有限,现在我想了解如何将代码部署到Ubuntu 16.04 LTS VPS。阅读了关于SE的各种教程和很多答案之后,我设法进行了很长时间(对我而言),但是现在我陷入了困境。

手动(通过腻子)我可以执行以下操作:

# check that Python 3.5 is installed
python3 --version  
# install pip
sudo -kS apt-get -y install python3-pip  
# upgrade pip to newest version
pip3 install --upgrade pip
# check result
pip3 --version  
# install venv
sudo -kS pip3 install virtualenv virtualenvwrapper 
# create venv
virtualenv ~/Env/firstsite  
# make sure venv is created 
ls -l ~/Env/firstsite/bin/python  # /home/droplet/Env/firstsite/bin/python3.5 -> python3
# switch on venv
source ~/Env/firstsite/bin/activate  # (firstsite) droplet@hostname:~$
# check that python3 is taken …
Run Code Online (Sandbox Code Playgroud)

python ssh ubuntu virtualenv paramiko

5
推荐指数
1
解决办法
1165
查看次数

如何在bash脚本中激活anaconda环境

我想编写一个简单的 bash 脚本来激活 anaconda 环境并在该环境中打开 jupyter notebooks。我只想通过首选环境简化笔记本的启动过程。

这就是我所拥有的:

cd ~/my_notebooks_folder
conda activate my_env
jupyter-notebook
conda info
Run Code Online (Sandbox Code Playgroud)

但是,这仍然会导致base环境处于活动状态,并且笔记本正在使用basepython运行。

我在 StackOverflow 上发现了两个关于这个问题的问题。然而,两者都没有帮助我。conda自这些问题发布以来,似乎功能已更改?

我在 Ubuntu 和 Linux Mint 上。康达版本:4.5.12。

这些是我尝试过的其他问题/答案:

python bash anaconda conda

5
推荐指数
0
解决办法
2085
查看次数

如何通过shell脚本激活python虚拟环境

我写了一个shell脚本.

    source ve/bin/activate
Run Code Online (Sandbox Code Playgroud)

当我使用命令运行脚本时,将其保存为activate_shell.sh.

    bash activate_shell.sh
Run Code Online (Sandbox Code Playgroud)

该脚本正在运行,没有错误,但虚拟环境未被激活.

python shell ubuntu virtualenv

4
推荐指数
2
解决办法
6611
查看次数

当从 bash 脚本调用时,pip 在 vi​​rtualenv 和全局中安装包

我正在尝试激活 python 环境并在 bash 文件中使用 pip 安装一些包。它在环境中安装成功,但也在我的 mac 上全局安装,我不明白为什么。

脚本.sh:

#!/bin/bash
source '<absolute path>/venv/bin/activate'
which pip
pip install psutil
pip list
Run Code Online (Sandbox Code Playgroud)

输出:

$ ./script.sh
<absolute path>/venv/bin/pip
...
Package          Version  
---------------- ---------
pip              19.0.3   
psutil           5.6.3    
setuptools       41.0.1  
wheel            0.33.1   
Run Code Online (Sandbox Code Playgroud)

但是,在另一个没有虚拟环境的终端中,它也会被安装:

$ which pip
/usr/local/opt/python/libexec/bin/pip
$ pip list
Package          Version  
---------------- ---------
pip              19.0.3   
psutil           5.6.3   
setuptools       41.0.1    
wheel            0.33.1   
Run Code Online (Sandbox Code Playgroud)

如果我在终端中一一键入脚本中的命令,它会按预期工作。
我缺少什么?

编辑:
如果我运行pip freeze | xargs pip uninstall -y(在环境中或全局中),它将删除 virtualenv 和全局中的包。
如果我再次运行脚本并列出“site-packages”中的内容,ls venv/lib/python3.7/site-packages则安装的包不存在,所以我的“venv/bin/pip”以某种方式指向我的全局“site-packages”?

edit2:我找到了一种重现行为的方法。
1. 创建环境 …

python bash pip

3
推荐指数
1
解决办法
5131
查看次数

标签 统计

python ×4

bash ×3

virtualenv ×3

conda ×2

shell ×2

ubuntu ×2

anaconda ×1

macos ×1

paramiko ×1

pip ×1

ssh ×1