Difference between revisions of "Linux Install"

From PyMOLWiki
Jump to navigation Jump to search
(Python 3)
 
(151 intermediate revisions by 19 users not shown)
Line 1: Line 1:
Installing PyMol is quite straightforward.
+
This page describes how to install PyMOL on Linux.
  
== Fedora Core Linux (x86) ==
+
== Incentive PyMOL ==
  
PyMOL RPMs are available for Fedora Core 1 & 2, provided by Morten Kjeldgaard. These can be manually downloaded by browsing from:
+
[http://www.schrodinger.com Schrödinger] provides pre-compiled (64 bit) PyMOL to paying sponsors. The bundle also includes ready-to-use [[APBS]], [[morph|RigiMOL]], an MPEG encoder for movie export, and a small molecule energy minimization engine.
  
http://apt.bioxray.dk/
+
Download: https://pymol.org/
  
Alternatively, PyMOL can be installed using [http://linux.duke.edu/projects/yum/ Yum] (an automated package installer and updater, installed by default in Fedora). This can be done by adding the following lines to your /etc/yum.conf file:
+
== Open-Source PyMOL in Linux Distros ==
  
[xray]
+
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.
name=MOKs RPM Repository fedora $releasever - $basearch - xray
 
baseurl=http://apt.bioxray.dk/fedora/$releasever/$basearch/xray
 
  
And then issuing the following command as root:
+
Command line install examples for some popular distributions (note that all of these commands must be run as root or superuser):
  
yum install pymol
+
<source lang="bash">
----
+
# Arch/Manjaro
 +
pacman -S pymol
  
== Gentoo Linux (x86) ==
+
# CentOS with EPEL
as root:
+
rpm -i http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm
emerge pymol
+
yum --enablerepo=epel install pymol
be sure to have the proper OpenGL configuration. For example:
 
opengl-update ati
 
opengl-update nvidia
 
list of available versions of [http://packages.gentoo.org/packages/?category=sci-chemistry;name=pymol pymol for gentoo]
 
----
 
  
== SuSe ==
+
# Debian/Ubuntu/Mint
=== 32-bit (x86) ===
+
apt-get install pymol
  
=== 64-bit (x86_64) ===
+
# Fedora
64-bit Python install is quite easy.  Make sure your nvidia driver is installed (or ATI, but I have no experience there).
+
dnf install pymol
  
To install PyMol
+
# Gentoo
*Ensure your system has it's distutils in place and ready to use.  Try the following check:
+
emerge -av pymol
<source lang="python">
+
 
from distutils import *
+
# openSUSE (12.1 and later)
 +
zypper install pymol
 +
 
 +
# Sabayon
 +
equo i -av pymol
 
</source>
 
</source>
*Download the [http://pymol.org/ source]
+
 
*Download [[http://www.sf.net/projects/pmw Pmw]] from [[http://www.sf.net/ SourceForge]].
+
== Install from source ==
** To install Pmw, just decompress it and then move the base director "Pwm" to /usr/lib64/python2.3/site-packages/.  You can test that it's there by testing the import, see below:
+
 
<source lang="python">
+
Installation from source gives you the latest version and is the generic way to install PyMOL.
import * from Pmw
+
 
 +
Please also consult the [https://github.com/schrodinger/pymol-open-source/blob/master/INSTALL 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)
 +
* [http://www.python.org/ Python] 3.6+
 +
* OpenGL driver (I use [http://www.nvidia.com/object/unix.html NVidia])
 +
* GLEW
 +
* libpng
 +
* freetype
 +
* libxml2 (optional, for COLLADA export, disable with <code>--no-libxml</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 if compiled with <code>--glut</code>)
 +
* [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):
 +
 
 +
<source lang="bash">
 +
# 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
 
</source>
 
</source>
If errors erupt, investigate.
 
* decompress the source and cd into the PyMol directory that was just decompressed.
 
* If upgrading see [[:Category: Upgrading PyMol|below]].
 
* Now enter the following...
 
<code>
 
python setup.py build<br>
 
sudo python setup.py install<br>
 
sudo python setup2.py
 
</code>
 
* The sudo commands will need a root password or someone with sudo capabilities.
 
  
I also copy the 'pymol.com' file to /usr/local/bin or /usr/bin -- somewhere in my path:
+
=== Get latest source from Git ===
<code>
+
 
sudo cp ./pymol.com /usr/local/bin
+
<source lang="bash">
</code>
+
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
 +
</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 ===
 +
 
 +
Optional: You may use the colon-delimited <code>$PREFIX_PATH</code> variable to point <code>setup.py</code> to non-standard locations of libraries and headers (those locations should have <code>include</code> and <code>lib</code> directories).
 +
 
 +
=== Compile and install ===
 +
 
 +
This will install PyMOL as normal user into <code>$HOME/pymol-open-source-build</code>.
  
You should now have a working PyMol install. 
+
<source lang="bash">
 +
#!/bin/bash -e
  
'''pymol.com''' should now run your new PyMol install.
+
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"
  
*Caveats
+
python3 setup.py build install \
**NVidia card
+
    --home=$prefix
***Kernel Source
+
</source>
**ATI card
 
**Pmw
 
  
[[Category:Technical_Issues_Installation_OS_Dependent|Linux Install]]
+
Now launch PyMOL like this:
  
 +
<source lang="bash">
 +
$HOME/pymol-open-source-build/bin/pymol
 +
</source>
  
== RPM ==
+
=== Troubleshooting ===
Download the appropriate RPM and use 'rpm' to install it.  Typically,
 
rpm -Uvh rpmFileName.rpm
 
  
== From Source ==
+
* Do do a "clean" build, remove the "build" directory (sometimes necessary if "git pull" changed header files)
===DistUtils===
 
assuming you already have your PyMol source tree untar'ed simply do:
 
  python setup.py build
 
  python setup.py install  # need to be root, here
 
  python setup2.py
 
  sudo cp ./pymol.com /usr/local/bin/pymol.com # cp the executable to /usr/local/bin
 
  
Now you can run PyMol from anywhere by issuing the command:
+
* 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]
pymol.com
+
 
===Compiling By Hand===
+
== Customized Installations ==
Copy the appropriate setup/Rules.XXX file to the base PyMol dir.  You'll have to edit the file for your system.  Then run 'make'.
+
 
 +
* [[User:Tlinnet/Linux_Install|Troels Linnet's installations scripts]]: Detailed installation scripts for Ubuntu, Mint 12 and RHEL 6, including MPEG support from FREEMOL
  
 
[[Category:Installation|Linux Installation]]
 
[[Category:Installation|Linux Installation]]
 
==Preparing your System==
 
See [[Linux_XFree86_Configuration]].
 

Latest revision as of 05:48, 5 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