我是一个初学者,正在“玩弄”环境。我遇到了一种情况,似乎我激活了两个环境:我创建一个目录,使用 venv 创建一个环境,激活它,然后 conda 激活我之前创建的 conda 环境。这些是命令:
mkdir dummie_directory
cd dummie_directory
python -m venv .
Scripts\activate
conda activate old_env
Run Code Online (Sandbox Code Playgroud)
之后我的命令行的开头如下所示:
(old_env)(dummie_directory) C:\Users\....
Run Code Online (Sandbox Code Playgroud)
这是否意味着两个环境都处于活动状态?是否有任何预期用途,或者它很可能会导致已安装的软件包之间发生某种冲突/冲突?
谢谢
编辑清晰度:这个问题是关于venv的,它经常与virtualenv混淆。
删除系统的Python安装(使用该源在系统上创建虚拟环境所使用的源)有什么后果venv?
最终,我想做的是删除3.7安装并在发行3.8时安装3.8,但是我不确定虚拟环境与系统环境之间的连接强度。
提出此问题时可能相关的一些系统详细信息:
rh-Pythonx.x yum存储库中的packge。/usr/local/bin/python3.7/usr/local/bin/python3 是一个链接 /usr/local/bin/python3.7鉴于上述细节,我的印象是Python的3.8将安装到下/usr/local/bin/python3.8和python3然后将指向该版本。
虚拟环境内部是否有足够的空间成为自己稳定的3.7环境?还是会崩溃,尝试引用不再存在的系统安装?
tl; dr: 从不再存在的Python源创建的所有虚拟环境中发生了什么?
我正在尝试为我当前的 Django 项目创建一个虚拟环境
python3 -m venv env
Run Code Online (Sandbox Code Playgroud)
但是该命令不会使用 bin/include/lib 文件夹创建任何目录。我到底错过了什么?
我经常发现这很有用,但我不确定有什么方法可以做到这一点。我经常在一个 python 项目上工作,在那里我用一个项目的虚拟环境和一个 Jupyter 笔记本启动项目。当我在 Jupyter notebook 中进行实验时,我开始向虚拟环境添加库。问题是如果我跑
pip freeze > requirements.txt
Run Code Online (Sandbox Code Playgroud)
在我的项目结束时,该文件将在我的虚拟环境中包含 jupyter 的库。有什么方法可以运行 Jupyter 笔记本(例如在我的基本 conda 环境中)但使用与另一个虚拟环境关联的内核?这似乎是最好的解决方案,但我不确定这是否可行?我知道我可能会做一些事情来从冻结的内容中删除这些内容,但这似乎是一种黑客行为。我看不到任何方法可以避免在目标虚拟环境中至少安装 ipykernel
与Can I conda install an alpha or beta version of Python密切相关?但这个问题是关于 conda-forge 中的特定版本。如果 Python 版本(例如 3.10.0b1)可以通过https://www.python.org/download/pre-releases/下载但还没有在主要的 anaconda 或任何其他 conda 频道中,那么我最好的选择是什么?使用它?
特别是对于 Python 的 alpha/beta 版本,我希望为我的安装保护 conda 环境。我现在担心使用标准 Python 安装程序,因为它可能无法正常运行,但也许我可以采取一些缓解措施?
我一直在尝试使用这个 yml 文件来创建一个环境(我创建了 yml):
name: testenv
channels:
- esri
- scitools
- obspy
- conda-forge
- defaults
dependencies:
- appnope=0.1.0=py36_0
- libgfortran=3.0.0=0
- pip=9.0.1=py36_0
- python=3.6.2=0
- wheel=0.30.0=py_1
- pip:
- ipython-genutils==0.2.0
- jupyter-client==5.1.0
- jupyter-console==5.1.0
- jupyter-core==4.3.0
- prompt-toolkit==1.0.15
Run Code Online (Sandbox Code Playgroud)
但是它总是失败并显示以下错误消息:
Using Anaconda API: https://api.anaconda.org
Solving environment: failed
ResolvePackageNotFound:
- wheel==0.30.0=py_1
- appnope==0.1.0=py36_0
Run Code Online (Sandbox Code Playgroud)
是不是找错频道了?如果我只是将它们安装在基本 conda 安装中,我就可以找到这些包。谢谢你的帮助。
我在树莓派 4 上有以下项目:我用 python 创建了一个人脸识别脚本,需要虚拟环境才能运行。该脚本打印出已检测到的人。
在 NodeJS 中,我想通过在节点(缩小版本)中运行脚本来接收答案:
const http = require("http");
const server = http.createServer((req, res) => {
var spawn = require('child_process').spawn,
py = spawn('python', ['faceReg.py'],)
py.stdout.on('data', function(data){
console.log('Data:' + data);
});
py.stdout.on('end', function(){
console.log('Python ended');
});
});
Run Code Online (Sandbox Code Playgroud)
当执行代码时,我立即得到一个“python结束”。
在我的 pi 上,当我在执行前运行以下命令时,我可以运行脚本:
source ~/.virtualenvs/cv2_env/bin/activate
Run Code Online (Sandbox Code Playgroud)
python脚本基本上是:
stop = False
while(stop==False):
print("Peter")
Run Code Online (Sandbox Code Playgroud)
更新
跑步时
py = spawn('~/.virtualenvs/cv2_env/bin/python', ['faceReg.py'])
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
events.js:174
throw er; // Unhandled 'error' event
^
Error: spawn ~/.virtualenvs/cv2_env/bin/python ENOENT
at Process.ChildProcess._handle.onexit (internal/child_process.js:240:19)
at onErrorNT (internal/child_process.js:415:16)
at process._tickCallback (internal/process/next_tick.js:63:19)
at …Run Code Online (Sandbox Code Playgroud) 到目前为止,我一直在 Windows 上使用 Anaconda,并且可以在选择要使用的确切 Python 时设置环境。例如conda create -n myEnvName python=3.7
现在,我想熟悉 Ubuntu 18.04 LTS 并使用基本的 Python 环境。
所以我遵循了以下步骤:
home = ~/.venvPython
sudo apt-get install python3-venv。python3 -m venv venv1BigDataPgm2source ~/.venvPython/venv1BigDataPgm2/bin/activatepython --version说:Python 3.6.9运行whereis Python显示:
rohit@rohitUb18043LTS:~$ whereis python
python: /usr/bin/python3.6 /usr/bin/python3.6-config /usr/bin/python2.7-config /usr/bin/python3.6m-config /usr/bin/python /usr/bin/python3.6m /usr/bin/python2.7 /usr/lib/python3.8 /usr/lib/python3.7 /usr/lib/python3.6 /usr/lib/python2.7 /etc/python3.6 /etc/python /etc/python2.7 /usr/local/lib/python3.6 /usr/local/lib/python2.7 /usr/include/python3.6 /usr/include/python3.6m /usr/include/python2.7 /usr/share/python …Run Code Online (Sandbox Code Playgroud) 注意:这个问题指的是Julia v1.5。当然,任何时候答案都应该理想地回答最新版本的问题。
Julia 安装提供了一个默认环境(称为,例如@v1.5)。当在某个工作目录中运行 Julia 时,可以julia>] activate .创建一个新环境或激活当前环境(如果当前文件夹包含诸如 之类的文件Project.toml)。
当 Julia 代码在某个环境中运行时,该环境定义了可以通过using或导入哪些包(或模块) import。但是,始终可以使用默认环境中安装的软件包。我还没有在文档中看到这个事实(尽管可能提到过),并在花了一些时间追踪丢失的导入后“艰难地”了解到了这一点。
这有优点也有缺点:有时人们觉得需要使用不属于项目真正一部分的包,例如用于分析或调试。如果这些安装在默认环境中,则可以使用它们而不会污染项目依赖项。另一方面,add尽管项目使用了某个包,但可能会忘记将某个包添加到项目的环境中。Project.toml在这种情况下,其他用户无法从和重现必要的环境Manifest.toml。(向 Julia 启动时运行的 Julia 脚本添加重要代码也可能有这个缺点)。
在我看来,有几种方法可以解决这个问题:
我的问题:是否有更多(更好?)的方法来处理这个问题?哪种选择对 Julia 来说是惯用的?
我正在为我的虚拟环境寻找某种命名方案。
python ×8
conda ×3
python-venv ×3
anaconda ×1
django ×1
environment ×1
julia ×1
node.js ×1
python-3.x ×1
raspberry-pi ×1
upgrade ×1
virtualenv ×1
windows ×1