Martin,

The _cmd module is indeed statically linked into MacPyMOL. But, if you
built from open-source it's dumped into site-packages/pymol. Also,
view the files inside pymol/examples/launching. There are plenty of
examples. If you're using a pre-built package from elsewhere, then
please contact the package maintainer to see how it's built.

Last, I prefer the newer "pymol2" strategy where you get a handle to a
PyMOL cmd instance:

from pymol2 import PyMOL
cmd=PyMOL().cmd

Cheers,

-- Jason

On Tue, Nov 22, 2011 at 8:19 AM, Thomas Holder
<spel...@users.sourceforge.net> wrote:
> Hi Martin,
>
> I don't have a Mac so I can't test this, sorry.
>
> I suspect that the _cmd module is built into the MacPyMOL executable.
> This would imply that you cannot use MacPyMOL like in the
> "Launching_From_a_Script" examples. Maybe someone of the MacPyMOL users
> knows more?
>
> Cheers,
>   Thomas
>
> Martin Hediger wrote, On 11/22/11 13:14:
>> Thanks Thomas for the reply. I tried it under Mac OS X 10.5.8.
>>
>> me @ ~/PROG_TEST $ python
>> Python 2.6.5 (r265:79359, Mar 24 2010, 01:32:55)
>> [GCC 4.0.1 (Apple Inc. build 5493)] on darwin
>> Type "help", "copyright", "credits" or "license" for more information.
>> imported numpy
>> from PyQt4.QtGui imported *
>> from PyQt4.QtCore imported *
>>>>>  import os, sys
>>>>>  import readline
>>>>>  import rlcompleter
>>>>>  readline.parse_and_bind('tab: complete')
>>>>>  moddir='/Applications/PyMOLX11Hybrid.app/pymol/modules'
>>>>>  sys.path.insert(0, moddir)
>>>>>  os.environ['PYMOL_PATH'] = os.path.join(moddir, 'pymol/pymol_path')
>>>>>  import pymol
>> Traceback (most recent call last):
>>   File "<stdin>", line 1, in<module>
>>   File
>> "/Applications/PyMOLX11Hybrid.app/pymol/modules/pymol/__init__.py", line
>> 472, in<module>
>>     import _cmd
>> ImportError: No module named _cmd
>>>>>  import pymol
>>
>>
>> What could be the problem? Could it be that the 'pymol/pymol_path' call
>> is not exactly right? In the modules/pymol directory, there is a module
>> 'pymol/launch_pymol', but I have a similar error ("No module named
>> _cmd") when I try to import it.
>> Martin
>>
>>
>>
>>
>>
>>
>> Am 22.11.11 09:47, schrieb Thomas Holder:
>>> Hi Martin,
>>>
>>> the recommended way is to use PyMOL as your python interpreter, so
>>> instead of:
>>>
>>>   python file.py
>>>
>>> do this:
>>>
>>>   pymol -cqr file.py
>>>
>>>
>>> However, launching a PyMOL process from a python terminal as you
>>> suggested is also possible. Have a look at Example 2 of
>>> http://pymolwiki.org/index.php/Launching_From_a_Script , the important
>>> lines are those:
>>>
>>> import pymol
>>> pymol.pymol_argv = ['pymol','-qc']
>>> pymol.finish_launching()
>>>
>>> Cheers,
>>>   Thomas
>>>
>>>
>>> Martin Hediger wrote, On 11/22/11 09:26:
>>>> Dear PyMOL List
>>>> It comes up once in a while, is it possible to use PyMOL features
>>>> from outside of PyMOL? An example, the below is a script (inspired by
>>>> Thomas Holder) which saves down to disk all amino acids of a protein
>>>> structure into separate PDB files.
>>>>
>>>> # *****************************************************************
>>>> from pymol import cmd
>>>> from pymol import stored
>>>> from pymol.exporting import _resn_to_aa as one_letter
>>>> # *****************************************************************
>>>> def seq(state, selection="name ca or resn hoh or resn lig"):
>>>>      print "Generating seqs."
>>>>      cmd.select("prot", selection)
>>>>      while cmd.pop("_tmp", "prot"):
>>>>          cmd.iterate("_tmp", "stored.x=(resn,resv)")
>>>>          #print stored.x[0], stored.x[1]
>>>>
>>>>          # Special case 1: Waters.
>>>>          if stored.x[0] == 'HOH':
>>>>              filename = 'seq-x%s-%s.pdb' % (stored.x[1], state)
>>>>          # Special case 2: Substrate.
>>>>          elif stored.x[0] == 'LIG':
>>>>              filename = 'seq-x%s-%s.pdb' % (stored.x[1], state)
>>>>          # Other: protein back-bone.
>>>>          else:
>>>>              filename = 'seq-%s%d-%s.pdb' %
>>>> (one_letter[stored.x[0]].lower(), stored.x[1], state)
>>>>          cmd.save(filename, "byres _tmp")
>>>>      cmd.delete('_tmp prot')
>>>>
>>>> cmd.extend('seq', seq)
>>>> # -----------------------------------------------------------------
>>>>
>>>> Is it possible to somehow include this in a Python script, and
>>>> running it from the command line? If not, why?
>>>>
>>>>
>>>> Thanks for any feedback.
>
> --
> Thomas Holder
> MPI for Developmental Biology
> Spemannstr. 35
> D-72076 Tübingen
>
> ------------------------------------------------------------------------------
> All the data continuously generated in your IT infrastructure
> contains a definitive record of customers, application performance,
> security threats, fraudulent activity, and more. Splunk takes this
> data and makes sense of it. IT sense. And common sense.
> http://p.sf.net/sfu/splunk-novd2d
> _______________________________________________
> PyMOL-users mailing list (PyMOL-users@lists.sourceforge.net)
> Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users
> Archives: http://www.mail-archive.com/pymol-users@lists.sourceforge.net
>



-- 
Jason Vertrees, PhD
PyMOL Product Manager
Schrodinger, LLC

(e) jason.vertr...@schrodinger.com
(o) +1 (603) 374-7120

------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure 
contains a definitive record of customers, application performance, 
security threats, fraudulent activity, and more. Splunk takes this 
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
_______________________________________________
PyMOL-users mailing list (PyMOL-users@lists.sourceforge.net)
Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users
Archives: http://www.mail-archive.com/pymol-users@lists.sourceforge.net

Reply via email to