# 一点有趣的东西
# conda虚拟环境之一点有趣的东西
有感于之前linux下java环境的配置仅仅是解压jdk并配置环境变量,突然对python的环境配置产生了一点想法:莫非conda虚拟环境的配置也仅仅是配置一下环境变量即可。
Linux配置Java环境
首先在未激活虚拟环境以及不同虚拟环境的情况下打印环境变量PATH,可以看到确实是在变动,初步印证猜想。
lei@leideMacBook-Pro tmp % echo $PATH
/Users/lei/miniconda3/condabin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/opt/homebrew/bin
lei@leideMacBook-Pro tmp % conda activate
(base) lei@leideMacBook-Pro tmp % echo $PATH
/Users/lei/miniconda3/bin:/Users/lei/miniconda3/condabin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/opt/homebrew/bin
(base) lei@leideMacBook-Pro tmp % conda deactivate
lei@leideMacBook-Pro tmp % echo $PATH
/Users/lei/miniconda3/condabin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/opt/homebrew/bin
lei@leideMacBook-Pro tmp % conda activate test
(test) lei@leideMacBook-Pro tmp % echo $PATH
/Users/lei/miniconda3/envs/test/bin:/Users/lei/miniconda3/condabin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/opt/homebrew/bin
下一步在退出所有虚拟环境的情况下手动改变环境变量,看看是否可以正常使用环境。
经过测试,可以看到可以正常使用,猜想得到验证。
lei@leideMacBook-Pro tmp % echo $PATH
/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Users/lei/miniconda3/condabin:/opt/homebrew/bin:/opt/homebrew/bin
lei@leideMacBook-Pro tmp % python --version
zsh: command not found: python
lei@leideMacBook-Pro tmp % python3 --version
Python 3.9.6
lei@leideMacBook-Pro tmp % pip list
zsh: command not found: pip
lei@leideMacBook-Pro tmp % pip3 list
Package Version
---------- -------
altgraph 0.17.2
future 0.18.2
macholib 1.15.2
pip 21.2.4
setuptools 58.0.4
six 1.15.0
wheel 0.37.0
WARNING: You are using pip version 21.2.4; however, version 23.2.1 is available.
You should consider upgrading via the '/Library/Developer/CommandLineTools/usr/bin/python3 -m pip install --upgrade pip' command.
lei@leideMacBook-Pro tmp % whereis python3
python3: /usr/bin/python3
lei@leideMacBook-Pro tmp % export PATH=/Users/lei/miniconda3/envs/test/bin:$PATH
lei@leideMacBook-Pro tmp % echo $PATH
/Users/lei/miniconda3/envs/test/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Users/lei/miniconda3/condabin:/opt/homebrew/bin:/opt/homebrew/bin
lei@leideMacBook-Pro tmp % python --version
Python 3.11.5
lei@leideMacBook-Pro tmp % python3 --version
Python 3.11.5
lei@leideMacBook-Pro tmp % pip list
Package Version
------------------------- ------------
altgraph 0.17.4
anyio 3.7.1
asgiref 3.7.2
austin-python 1.5.1
austin-tui 1.2.3
...
lei@leideMacBook-Pro test % python pyreactpy_test.py
2023-09-30T11:53:14+0800 | WARNING | The `run()` function is only intended for testing during development! To run in production, consider selecting a supported backend and importing its associated `configure()` function from `reactpy.backend.<package>` where `<package>` is one of ['starlette', 'fastapi', 'sanic', 'tornado', 'flask']. For details refer to the docs on how to run each package.
2023-09-30T11:53:14+0800 | INFO | Running with starlette.applications.Starlette at http://127.0.0.1:7654
INFO: Started server process [3186]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://127.0.0.1:7654 (Press CTRL+C to quit)
INFO: 127.0.0.1:61107 - "GET / HTTP/1.1" 200 OK
INFO: 127.0.0.1:61107 - "GET /index.a1f87a11.js HTTP/1.1" 200 OK
INFO: ('127.0.0.1', 61112) - "WebSocket /_reactpy/stream" [accepted]
INFO: connection open
INFO: 127.0.0.1:61107 - "GET /reactpy-logo.ico HTTP/1.1" 200 OK