[ Skip to the content ]

Institute of Formal and Applied Linguistics Wiki


[ Back to the navigation ]

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
python [2017/10/13 12:06]
bojar [Virtual environments] caveat about shebangs
python [2019/12/02 17:54]
popel
Line 3: Line 3:
 In this guide, I expect you are using Python3 (and ''pip3''), but (for old projects) you can use Python2 (and ''pip2'') as well.  In this guide, I expect you are using Python3 (and ''pip3''), but (for old projects) you can use Python2 (and ''pip2'') as well. 
  
-  * You can use the system Python (currently 2.7.6 and 3.4.3, in Ubuntu 14.04), but it is a bit old and will be changed when a new Ubuntu is installed at ÚFAL. +  * You can use the system Python (currently 3.6.*, in Ubuntu 18.04) 
-  * You can use any Python from ''/opt/python/'', e.g. for 3.6.add the following line to your .bashrc: <code>export PATH=/opt/python/3.6.3/bin:"${PATH}"</code>+  * You can use any Python from ''/opt/python/'', e.g. for 3.7.add the following line to your .bashrc: <code>export PATH=/opt/python/3.7.0/bin:"${PATH}"</code>
   * You can install modules with ''pip3''. If you are not using any [[#virtual environments]], you must add the ''-''''-user'' option, so it is installed in your home. In this case, don't forget the executable scripts are installed in ''~/.local/bin/'', so add the following line to your .bashrc: <code>export PATH=~/.local/bin:"${PATH}"</code>   * You can install modules with ''pip3''. If you are not using any [[#virtual environments]], you must add the ''-''''-user'' option, so it is installed in your home. In this case, don't forget the executable scripts are installed in ''~/.local/bin/'', so add the following line to your .bashrc: <code>export PATH=~/.local/bin:"${PATH}"</code>
-  * If you are using the system Python3 (3.4.3), note that it comes with a very old version of pip3 (1.5.4), so it is recommended to update it with <code>pip3 install --user --upgrade pip</code>+  * Both the system Python3 and the Python3 from ''/opt/python/'' come with an old version of pip3, so it is recommended to update it with <code>pip3 install --user --upgrade pip</code>
   * There are no UFAL-wide pre-installed Python modules. You need to install all modules you need yourself (with pip3).   * There are no UFAL-wide pre-installed Python modules. You need to install all modules you need yourself (with pip3).
  
Line 15: Line 15:
     python3 -m venv my-project-name     python3 -m venv my-project-name
 where ''my-project-name'' can be a relative or absolute path to a directory which will be created. where ''my-project-name'' can be a relative or absolute path to a directory which will be created.
-**Caveat:** the path to the directory should be rather short, there is a limit on shebang paths so you can get strange errors like ''ipython3: bad interpreter: No such file or directory'' if your ipython3 installed in the venv starts with ''#!/...a..very..long..path...''+**Caveat1:** the path to the directory should be rather short, there is a limit on shebang paths so you can get strange errors like ''ipython3: bad interpreter: No such file or directory'' if your ipython3 is installed in the venv starts with ''#!/..a..very..long..path..'' 
 +**Caveat2:** If ''my-project-name'' is a relative path, it will be concatenated with ''pwd -P'', i.e. with your actual directory with all symlinks resolved. If you want symlinks in the path, you must provide absolute path as ''my-project-name''. Note that e.g. ''/net/work/people'' is currently (2018-06) resolved by ''pwd -P'' to ''/lnet/.nfs/spec/work/people/'', but this path does not work on machines with native Lustre support.)
  
 You can use any Python version for the new environment, e.g. ''/opt/python/3.5.4/bin/python3 -m venv my-project-name-python3.5'' You can use any Python version for the new environment, e.g. ''/opt/python/3.5.4/bin/python3 -m venv my-project-name-python3.5''
Line 34: Line 35:
    virtualenv my-project-name    virtualenv my-project-name
    source my-project-name/bin/activate    source my-project-name/bin/activate
 +   
 +==== IPython in virtual envs. ====
 +When using virtuaenvs, ipython is (in some versions) confused and uses an incorrect python interpreter. The following alias fixes this issue:
 +<code>
 +alias ipython="python -c 'import IPython; IPython.terminal.ipapp.launch_new_instance()'"
 +</code>
  
 ===== Installing directly from Git ===== ===== Installing directly from Git =====

[ Back to the navigation ] [ Back to the content ]