[英]Python works in vs code but not in vs code terminal
我可以使用運行 python 文件按鈕運行我的 python 文件。 當我在 vs code 中打開終端時,我看到了這個:
source /Users/xxxxx/opt/anaconda3/bin/activate
conda activate base
但是如果我在終端中輸入where python
會得到:
/usr/bin/python
此外,如果我運行 python 文件,我會收到類似No module named 'whatever'
等錯誤,或者存在語法錯誤,盡管該文件在 vs 代碼中運行。
我該怎么做才能從終端運行這些文件?
所以發生的事情是,當您使用 VSCode 時,conda 實際上是在采購和使用它自己的包。
如果你想使用相同的包,你必須做同樣的事情,所以我會說只是做:
source /Users/xxxxx/opt/anaconda3/bin/activate
conda activate base
對於第二個問題,您可能希望在運行時給 python 它是 PYTHONPATH。 它基本上告訴它在哪里可以找到其他模塊(如 src 目錄)。
為此,只需添加前綴: PYTHONPATH=/folder/path/ python filename.py
您已經在 VSCode 和終端中選擇了不同的環境。
您已經在 VSCode 中選擇了 conda conda base
環境,並且您的 python 文件運行正常。 但是當您退出 VSCode 時,您正在使用全局 python 環境( /usr/bin/python )。
而這個 python 版本低於3.6
。 f-string
是在3.6
中引入的,所以會出現syntax error
。
因此,您可以在執行 python 文件之前在終端中激活conda base
環境:
source /Users/xxxxx/opt/anaconda3/bin/activate
conda activate base
我在 MacOS 上也有類似的問題。
在標准終端中:
$ python -V
Python 3.9.7
$ python3 -V
Python 3.9.7
$ /opt/anaconda3/bin/python -V
Python 3.9.7
都好。
但是,在 VSCode 終端中(在base
conda env 中):
$ python -V
Python 2.7.10
$ python3 -V
Python 3.6.4
$ /opt/anaconda3/bin/python -V
Python 3.9.7 # this is the one I want by default
在 VSCode 中,我在設置中設置了 Anaconda 和 Python 解釋器的路徑(截圖):
Python: Conda Path
:/Users/用戶名/opt/anaconda3/bin/condaPython: Default Interpreter Path
:/Users/username/opt/anaconda3/bin/python 我的.bash_profile
(注意我評論了舊 python 版本的路徑):
# Setting PATH for Python 3.5
# The original version is saved in .bash_profile.pysave
#PATH="/Library/Frameworks/Python.framework/Versions/3.5/bin:${PATH}"
#export PATH
# MacPorts Installer addition on 2017-05-11_at_15:09:46: adding an appropriate PATH variable for use with MacPorts.
export PATH="/opt/local/bin:/opt/local/sbin:$PATH"
# Finished adapting your PATH environment variable for use with MacPorts.
# Setting PATH for Python 3.6
# The original version is saved in .bash_profile.pysave
#PATH="/Library/Frameworks/Python.framework/Versions/3.6/bin:${PATH}"
#export PATH
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/Users/username/opt/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/Users/username/opt/anaconda3/etc/profile.d/conda.sh" ]; then
. "/Users/username/opt/anaconda3/etc/profile.d/conda.sh"
else
export PATH="/Users/username/opt/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
另外,當我嘗試 conda conda list
(在 VSCode 中,conda base
env)時,我得到
python 3.9.7 h88f2d9e_1
這是正確的,但是在運行時
python3 -c "import sys; print(sys.version)"
我得到
3.6.4 (v3.6.4:d48ecebad5, Dec 18 2017, 21:07:28)
這不是我要找的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.