问题
I have a conda environment at the default location for windows, which is C:\ProgramData\Anaconda2\envs\myenv
. Also, as recommended, the conda scripts and executables are not in the %PATH%
environment variable.
I opened a project in pycharm and pointed the python interpreter to
C:\ProgramData\Anaconda2\envs\myenv\python.exe
and pycharm seems to work well with the environment in the python console, in the run environment, and in debug mode.
However, when opening the terminal the environment is not activated (I made sure that the checkbox for activating the environment is checked). To be clear - when I do the same thing with a virtualenv the terminal does activate the environment without a problem.
Here are a few things I tried and did not work:
- Copied the activate script from the anaconda folder to the environment folder
- Copied the activate script from the anaconda folder to the
Scripts
folder under the environment - Copied an activate script from the virtualenv (an identical one for which the environment is activated)
- Added the anaconda folders to the path
None of these worked. I can manually activate the environment without a problem once the terminal is open, but how do I do it automatically?
回答1:
This seems to be a known issue.
回答2:
I ran into the same problem and used this solution.
Go to
File -> Settings -> Tools -> Terminal
.Replace the value in
Shell path
withcmd.exe "/K" C:\path\to\Anaconda3\Scripts\activate.bat your_environment_name
.
If I installed Anaconda in C:\Anaconda3
and have an environment named myenv
, then my settings would look like this:
回答3:
If any one wondering for settings for Linux, here is how to do it. Create a file .pycharmrc
in your home dir
. Open the file and add following
source ~/.bashrc
source ~/anaconda3/bin/activate your_env_name
Now go to Pycharm File > Settings > Tools > Terminal > Shell path
replace your shell path with /bin/bash --rcfile ~/.pycharmrc
.
Now when you open your terminal specified conda env will activate.
回答4:
Expanding on darksinge's answer to accommodate for conda>=4.4 and multiple environments, if 1) your conda environments and projects share the same name and 2) you keep your projects in the same directory, you can use this workaround:
cmd.exe "/K" C:\path\to\Anaconda3\Scripts\activate.bat C:\path\to\Anaconda3 & activate %cd:C:\path\to\project\parent\directory\=%
The last part (%cd:C:\path\to\project\parent\directory\=%
) should infer the project name from the current working directory. For example, I keep my projects in Z:\
, so %cd:Z:\=%
returns my project name. You can read more at: How to replace substrings in windows batch file
回答5:
Here's my solution for MacOS or Linux users:
First, add this to your ~/.bash_profile
or ~/.zshrc
depends on your shell. Remember to put it after conda has been initialized:
##### Activate conda env ######
[[ -n $CONDA_ENV ]] && conda activate $CONDA_ENV
And then go to your PyCharm settings, go to Tools -> Terminal In Project Settings, add CONDA_ENV=yourenv to your Environment Variables
yourenv is the env name from your conda for this specific project
来源:https://stackoverflow.com/questions/48924787/pycharm-terminal-doesnt-activate-conda-environment