This is a read-only mirror of pymolwiki.org

Difference between revisions of "Linux Install"

From PyMOL Wiki
Jump to navigation Jump to search
m (3 revisions)
m (1 revision)
 
(14 intermediate revisions by 2 users not shown)
Line 49: Line 49:
  
 
* C++11 compiler (e.g. GCC 4.7 or higher)
 
* C++11 compiler (e.g. GCC 4.7 or higher)
* [http://www.python.org/ Python] (with distutils)
+
* [http://www.python.org/ Python] 3.6+
* [http://pmw.sf.net Pmw] (Python Megawidgets)
 
 
* OpenGL driver (I use [http://www.nvidia.com/object/unix.html NVidia])
 
* OpenGL driver (I use [http://www.nvidia.com/object/unix.html NVidia])
 
* GLEW
 
* GLEW
* GLUT/freeglut (optional, disable with <code>--no-glut</code>)
 
 
* libpng
 
* libpng
 
* freetype
 
* freetype
 
* libxml2 (optional, for COLLADA export, disable with <code>--no-libxml</code>)
 
* libxml2 (optional, for COLLADA export, disable with <code>--no-libxml</code>)
* [https://github.com/msgpack/msgpack-c msgpack-c] 1.0+ (optional, for fast [http://mmtf.rcsb.org/ MMTF] loading, new in SVN r4167, disable with <code>--use-msgpackc=no</code>)
+
* [https://github.com/msgpack/msgpack-c msgpack-c] 2.1.5+ (optional, for fast [http://mmtf.rcsb.org/ MMTF] loading, new in SVN r4167, disable with <code>--use-msgpackc=no</code>)
* PyQt5, PyQt4, or PySide (optional, will fall back to Tk interface)
+
* PyQt5, PyQt4, or PySide (optional, will fall back to Tk interface if compiled with <code>--glut</code>)
* [https://github.com/schrodinger/simplemmtf-python simplemmtf] (optional, for MMTF export)
 
 
* [https://glm.g-truc.net/ glm]
 
* [https://glm.g-truc.net/ glm]
 +
* [https://github.com/rcsb/mmtf-cpp mmtf-cpp] (optional, for [http://mmtf.rcsb.org/ MMTF] export, disable with <code>--use-msgpackc=no</code>)
 +
* libnetcdf (optional, disable with <code>--no-vmd-plugins</code>)
 +
 +
Optional/deprecated:
 +
 +
* [https://github.com/schrodinger/pmw-patched Pmw] (Python Megawidgets, for legacy GUI/plugins)
 +
* GLUT/freeglut (enable with <code>--glut</code>)
  
 
On many Linux systems, one of the following commands installs all requirements (and must be run as root):
 
On many Linux systems, one of the following commands installs all requirements (and must be run as root):
Line 66: Line 70:
 
<source lang="bash">
 
<source lang="bash">
 
# Debian/Ubuntu/Mint
 
# Debian/Ubuntu/Mint
apt-get install build-essential python-dev python-pmw libglew-dev \
+
apt-get install git build-essential python3-dev libglew-dev \
   freeglut3-dev libpng-dev libfreetype6-dev libxml2-dev \
+
   libpng-dev libfreetype6-dev libxml2-dev \
   libmsgpack-dev python-pyqt5.qtopengl libglm-dev
+
   libmsgpack-dev python3-pyqt5.qtopengl libglm-dev libnetcdf-dev
  
 
# CentOS
 
# CentOS
 
yum install gcc gcc-c++ kernel-devel python-devel tkinter python-pmw glew-devel \
 
yum install gcc gcc-c++ kernel-devel python-devel tkinter python-pmw glew-devel \
   freeglut-devel libpng-devel freetype-devel libxml2-devel glm-devel
+
   freeglut-devel libpng-devel freetype-devel libxml2-devel glm-devel \
 +
  msgpack-devel netcdf-devel
  
 
# Fedora
 
# Fedora
dnf install gcc gcc-c++ kernel-devel python-devel tkinter python-pmw glew-devel \
+
dnf install gcc gcc-c++ kernel-devel python3-devel glew-devel PyQt5 msgpack-devel \
 
   freeglut-devel libpng-devel freetype-devel libxml2-devel glm-devel
 
   freeglut-devel libpng-devel freetype-devel libxml2-devel glm-devel
  
Line 91: Line 96:
  
 
=== Get latest source from Git ===
 
=== Get latest source from Git ===
 
This will download the latest source to <code>/tmp/pymol</code>:
 
  
 
<source lang="bash">
 
<source lang="bash">
cd /tmp
 
 
git clone https://github.com/schrodinger/pymol-open-source.git
 
git clone https://github.com/schrodinger/pymol-open-source.git
 +
git clone https://github.com/rcsb/mmtf-cpp.git
 +
mv mmtf-cpp/include/mmtf* pymol-open-source/include/
 
cd pymol-open-source
 
cd pymol-open-source
 
</source>
 
</source>
 +
 +
''The master branch requires Python 3.6+. Use the legacy [https://github.com/schrodinger/pymol-open-source/tree/py2 py2] branch for Python 2.7 compatibility.''
  
 
=== Libraries in non-standard places ===
 
=== Libraries in non-standard places ===
Line 106: Line 112:
 
=== Compile and install ===
 
=== Compile and install ===
  
This will install PyMOL as normal user into <code>$HOME/opt/pymol-svn</code>.
+
This will install PyMOL as normal user into <code>$HOME/pymol-open-source-build</code>.
  
 
<source lang="bash">
 
<source lang="bash">
 
#!/bin/bash -e
 
#!/bin/bash -e
  
prefix=$HOME/opt/pymol-svn
+
prefix=$HOME/pymol-open-source-build
modules=$prefix/modules
 
  
 
# Example for dependencies in non-standard places
 
# Example for dependencies in non-standard places
 
# export PREFIX_PATH="$HOME/extra/glew-2.0.0:$HOME/extra/libpng-1.6.5:/opt/local"
 
# export PREFIX_PATH="$HOME/extra/glew-2.0.0:$HOME/extra/libpng-1.6.5:/opt/local"
  
# If you want to install as root, then split this line up in "build"
+
python3 setup.py build install \
# and "install" and run the "install" with "sudo"
+
     --home=$prefix
python2.7 setup.py build install \
 
     --home=$prefix \
 
    --install-lib=$modules \
 
    --install-scripts=$prefix
 
 
</source>
 
</source>
  
Line 128: Line 129:
  
 
<source lang="bash">
 
<source lang="bash">
$HOME/opt/pymol-svn/pymol
+
$HOME/pymol-open-source-build/bin/pymol
</source>
 
 
 
Optionally, in order to allow running the command <code>pymol</code> from the terminal to launch the program do:
 
<source lang = "bash">
 
sudo ln -s $HOME/opt/pymol-svn/pymol /usr/bin/pymol
 
 
</source>
 
</source>
  
 
=== Troubleshooting ===
 
=== Troubleshooting ===
  
* If you get an error message "ImportError: No module named Pmw" and lack half of the user interface, then append <code>--bundled-pmw</code> to the install command line.
+
* Do do a "clean" build, remove the "build" directory (sometimes necessary if "git pull" changed header files)
  
 
* If you are using Ubuntu with a NVIDIA graphic card and generic drivers you may experience bad rendering, black pixelation and other graphical oddities. A guide to installing NVIDIA proprietary drivers can be found under [https://help.ubuntu.com/community/BinaryDriverHowto/Nvidia Ubuntu community Nvidia Drivers How To]
 
* If you are using Ubuntu with a NVIDIA graphic card and generic drivers you may experience bad rendering, black pixelation and other graphical oddities. A guide to installing NVIDIA proprietary drivers can be found under [https://help.ubuntu.com/community/BinaryDriverHowto/Nvidia Ubuntu community Nvidia Drivers How To]

Latest revision as of 05:01, 22 June 2020

This page describes how to install PyMOL on Linux.

Incentive PyMOL

Schrödinger provides pre-compiled (64 bit) PyMOL to paying sponsors. The bundle also includes ready-to-use APBS, RigiMOL, an MPEG encoder for movie export, and a small molecule energy minimization engine.

Download: https://pymol.org/

Open-Source PyMOL in Linux Distros

Many Linux distributions provide binary packages for open-source PyMOL. They often do not provide the latest version, but if the provided package fits your needs this is the most convenient way to install PyMOL.

Command line install examples for some popular distributions (note that all of these commands must be run as root or superuser):

# Arch/Manjaro
pacman -S pymol

# CentOS with EPEL
rpm -i http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm
yum --enablerepo=epel install pymol

# Debian/Ubuntu/Mint
apt-get install pymol

# Fedora
dnf install pymol

# Gentoo
emerge -av pymol

# openSUSE (12.1 and later)
zypper install pymol

# Sabayon
equo i -av pymol

Install from source

Installation from source gives you the latest version and is the generic way to install PyMOL.

Please also consult the INSTALL file.

Requirements

Libraries as well as development files (headers) of the following software is required:

  • C++11 compiler (e.g. GCC 4.7 or higher)
  • Python 3.6+
  • OpenGL driver (I use NVidia)
  • GLEW
  • libpng
  • freetype
  • libxml2 (optional, for COLLADA export, disable with --no-libxml)
  • msgpack-c 2.1.5+ (optional, for fast MMTF loading, new in SVN r4167, disable with --use-msgpackc=no)
  • PyQt5, PyQt4, or PySide (optional, will fall back to Tk interface if compiled with --glut)
  • glm
  • mmtf-cpp (optional, for MMTF export, disable with --use-msgpackc=no)
  • libnetcdf (optional, disable with --no-vmd-plugins)

Optional/deprecated:

  • Pmw (Python Megawidgets, for legacy GUI/plugins)
  • GLUT/freeglut (enable with --glut)

On many Linux systems, one of the following commands installs all requirements (and must be run as root):

# Debian/Ubuntu/Mint
apt-get install git build-essential python3-dev libglew-dev \
  libpng-dev libfreetype6-dev libxml2-dev \
  libmsgpack-dev python3-pyqt5.qtopengl libglm-dev libnetcdf-dev

# CentOS
yum install gcc gcc-c++ kernel-devel python-devel tkinter python-pmw glew-devel \
  freeglut-devel libpng-devel freetype-devel libxml2-devel glm-devel \
  msgpack-devel netcdf-devel

# Fedora
dnf install gcc gcc-c++ kernel-devel python3-devel glew-devel PyQt5 msgpack-devel \
  freeglut-devel libpng-devel freetype-devel libxml2-devel glm-devel

# Gentoo
emerge -av dev-lang/python dev-python/pmw media-libs/glew \
  media-libs/freeglut media-libs/libpng media-libs/freetype media-libs/glm

# openSUSE
zypper install python-devel freeglut-devel gcc-c++ glew-devel libpng-devel python-pmw glm

# Sabayon
equo i -av dev-lang/python dev-python/pmw media-libs/glew \
  media-libs/freeglut media-libs/libpng media-libs/freetype

Get latest source from Git

git clone https://github.com/schrodinger/pymol-open-source.git
git clone https://github.com/rcsb/mmtf-cpp.git
mv mmtf-cpp/include/mmtf* pymol-open-source/include/
cd pymol-open-source

The master branch requires Python 3.6+. Use the legacy py2 branch for Python 2.7 compatibility.

Libraries in non-standard places

Optional: You may use the colon-delimited $PREFIX_PATH variable to point setup.py to non-standard locations of libraries and headers (those locations should have include and lib directories).

Compile and install

This will install PyMOL as normal user into $HOME/pymol-open-source-build.

#!/bin/bash -e

prefix=$HOME/pymol-open-source-build

# Example for dependencies in non-standard places
# export PREFIX_PATH="$HOME/extra/glew-2.0.0:$HOME/extra/libpng-1.6.5:/opt/local"

python3 setup.py build install \
    --home=$prefix

Now launch PyMOL like this:

$HOME/pymol-open-source-build/bin/pymol

Troubleshooting

  • Do do a "clean" build, remove the "build" directory (sometimes necessary if "git pull" changed header files)
  • If you are using Ubuntu with a NVIDIA graphic card and generic drivers you may experience bad rendering, black pixelation and other graphical oddities. A guide to installing NVIDIA proprietary drivers can be found under Ubuntu community Nvidia Drivers How To

Customized Installations