簡體   English   中英

Python 在 vs 代碼中工作,但在 vs 代碼終端中不工作

[英]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/conda
  • Python: 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM