<HTML>
<style> BODY { font-family:Arial, Helvetica, sans-serif;font-size:12px; }</style>How about running the python exec directly from the virtual env :<br>
<br>
/Users/me/Desktop/virtual_python_root/bin/python<br>
Python 2.5.1 (r251:54863, Jun 17 2009, 20:37:34) <br>
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin<br>
Type "help", "copyright", "credits" or "license" for more information.<br>
&gt;&gt;&gt; import wx<br>
&gt;&gt;&gt; wx.__path__<br>
['/Users/me/Desktop/virtual_python_root/lib/python2.5/site-packages/wx-2.8-mac-unicode/wx']<br>
<br>
it seams work work correctly (correct me if I'm wrong). I the wrote my plist like so :<br>
<br>
&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;plist version="1.0"&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;dict&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;key&gt;StandardOutPath&lt;/key&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;string&gt;test.log&lt;/string&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;key&gt;StandardErrorPath&lt;/key&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;string&gt;test-err.log&lt;/string&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;key&gt;EnvironmentVariables&lt;/key&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;dict&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;key&gt;PYTHONPATH&lt;/key&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;string&gt;/Users/me/Desktop/virtual_python_root/lib/python2.5/site-packages:/Users/me/Desktop/myproj&lt;/string&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;string&gt;DYLD_LIBRARY_PATH&lt;/string&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;string&gt;/Users/me/Desktop/virtual_python_root/wx/2.8/lib&lt;/string&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/dict&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;key&gt;KeepAlive&lt;/key&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;dict&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;key&gt;SuccessfulExit&lt;/key&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;false/&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/dict&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;key&gt;Label&lt;/key&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;string&gt;com.test.virtualenv&lt;/string&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;key&gt;Program&lt;/key&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;string&gt;/Users/me/Desktop/virtual_python_root/bin/python&lt;/string&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;key&gt;ProgramArguments&lt;/key&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;array&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;string&gt;python.virtualenv&lt;/string&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;string&gt;./launcher.py&lt;/string&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;string&gt;app1&lt;/string&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/array&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;key&gt;WorkingDirectory&lt;/key&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;string&gt;/Users/me/Desktop/Arimaz-Trunk/src&lt;/string&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/dict&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/plist&gt;<br>
<br>
and again it seams to work (correct me again if I messed up somewhere).<br>
<br>
What is the advantage of using your method?<br>
<br>
Gabriel<br>
 <br>
<br>
<span style="font-weight: bold;">On Fri 25/09/09 17:01 , "Orestis Markou" orestis@orestis.gr sent:<br>
</span><blockquote style="border-left: 2px solid rgb(245, 245, 245); margin-left: 5px; margin-right: 0px; padding-left: 5px; padding-right: 0px;">No need for a wrapper script. In recent versions of virtualenv, you  <br>

can do this:<br>

<br>

     activate_this = 'path/to/virtualenv/bin/activate_this.py'<br>

     if os.path.exists(activate_this):<br>

         execfile(activate_this, dict(__file__=activate_this))<br>

<br>

On 25 Σεπ 2009, at 3:56 μ.μ., Gabriel Rossetti wrote:<br>

<br>

<span style="color: rgb(102, 102, 102);">&gt; Hello everyone,</span><br>

<span style="color: rgb(102, 102, 102);">&gt;</span><br>

<span style="color: rgb(102, 102, 102);">&gt; I would like to create a Launchd plist entry to start a virtualenv  </span><br>

<span style="color: rgb(102, 102, 102);">&gt; and run a python project. I created my plist, but I'm not sure how  </span><br>

<span style="color: rgb(102, 102, 102);">&gt; to get it to activate the virtualenv and run the program. I thought  </span><br>

<span style="color: rgb(102, 102, 102);">&gt; that maybe I could create two <dict> emtries :</dict></span><br>

<span style="color: rgb(102, 102, 102);">&gt;</span><br>

<span style="color: rgb(102, 102, 102);">&gt;         </span><br>

<span style="color: rgb(102, 102, 102);">&gt;         </span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 "<a target="_blank" href="parse.php?redirect=<a href="http://www.apple.com/DTDs/PropertyList-1.0.dtd%26quot%3B%26gt">http://www.apple.com/DTDs/PropertyList-1.0.dtd%26quot%3B%26gt</a>"><span style="color: red;">http://www.apple.com/DTDs/PropertyList-1.0.dtd"&gt;</span></a>;</span><br>

<span style="color: rgb(102, 102, 102);">&gt;         <plist version="1.0"></plist></span><br>

<span style="color: rgb(102, 102, 102);">&gt;         <dict></dict></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <key>Label</key></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <string>com.example.virtualenv</string></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <key>Program</key></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <string>source</string></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <key>ProgramArguments</key></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <array></array></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                         <string>/path/to/myvirtualenv/bin/activate</string></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 </span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <key>RunAtLoad</key></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <true></true></span><br>

<span style="color: rgb(102, 102, 102);">&gt;         </span><br>

<span style="color: rgb(102, 102, 102);">&gt;         <dict></dict></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <key>Label</key></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <string>com.example.app</string></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <key>Program</key></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <string>python</string></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <key>ProgramArguments</key></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <array></array></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                         <string>/path/to/myproj/launcher.py</string></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                         <string>start</string></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 </span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <key>RunAtLoad</key></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <true></true></span><br>

<span style="color: rgb(102, 102, 102);">&gt;         </span><br>

<span style="color: rgb(102, 102, 102);">&gt;         </span><br>

<span style="color: rgb(102, 102, 102);">&gt;</span><br>

<span style="color: rgb(102, 102, 102);">&gt;</span><br>

<span style="color: rgb(102, 102, 102);">&gt; but I'm not sure I can do that, and I have 2 programs to run for my  </span><br>

<span style="color: rgb(102, 102, 102);">&gt; project, so would I create 3<dict> entries like so :</dict></span><br>

<span style="color: rgb(102, 102, 102);">&gt;</span><br>

<span style="color: rgb(102, 102, 102);">&gt;         </span><br>

<span style="color: rgb(102, 102, 102);">&gt;         </span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 "<a target="_blank" href="parse.php?redirect=<a href="http://www.apple.com/DTDs/PropertyList-1.0.dtd%26quot%3B%26gt">http://www.apple.com/DTDs/PropertyList-1.0.dtd%26quot%3B%26gt</a>"><span style="color: red;">http://www.apple.com/DTDs/PropertyList-1.0.dtd"&gt;</span></a>;</span><br>

<span style="color: rgb(102, 102, 102);">&gt;         <plist version="1.0"></plist></span><br>

<span style="color: rgb(102, 102, 102);">&gt; <!-- The virtualenv --></span><br>

<span style="color: rgb(102, 102, 102);">&gt;         <dict></dict></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <key>Label</key></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <string>com.example.virtualenv</string></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <key>Program</key></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <string>source</string></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <key>ProgramArguments</key></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <array></array></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                         <string>/path/to/myvirtualenv/bin/activate</string></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 </span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <key>RunAtLoad</key></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <true></true></span><br>

<span style="color: rgb(102, 102, 102);">&gt;         </span><br>

<span style="color: rgb(102, 102, 102);">&gt; <!-- My app 1 --></span><br>

<span style="color: rgb(102, 102, 102);">&gt;         <dict></dict></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <key>Label</key></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <string>com.example.app1</string></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <key>Program</key></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <string>python</string></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <key>ProgramArguments</key></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <array></array></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                         <string>/path/to/myproj/launcher.py</string></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                         <string>app1</string></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                         <string>start</string></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 </span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <key>RunAtLoad</key></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <true></true></span><br>

<span style="color: rgb(102, 102, 102);">&gt;         </span><br>

<span style="color: rgb(102, 102, 102);">&gt; <!-- My app 2 --></span><br>

<span style="color: rgb(102, 102, 102);">&gt;         <dict></dict></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <key>Label</key></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <string>com.example.app2</string></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <key>Program</key></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <string>python</string></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <key>ProgramArguments</key></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <array></array></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                         <string>/path/to/myproj/launcher.py</string></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                         <string>app2</string></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                         <string>start</string></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 </span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <key>RunAtLoad</key></span><br>

<span style="color: rgb(102, 102, 102);">&gt;                 <true></true></span><br>

<span style="color: rgb(102, 102, 102);">&gt;         </span><br>

<span style="color: rgb(102, 102, 102);">&gt;         </span><br>

<span style="color: rgb(102, 102, 102);">&gt;</span><br>

<span style="color: rgb(102, 102, 102);">&gt; Or is there a better/another way to do this?</span><br>

<span style="color: rgb(102, 102, 102);">&gt; _______________________________________________</span><br>

<span style="color: rgb(102, 102, 102);">&gt; Pythonmac-SIG maillist  -  <a href="javascript:top.opencompose('Pythonmac-SIG@python.org','','','')">Pythonmac-SIG@python.org</a></span><br>

<span style="color: rgb(102, 102, 102);">&gt; <a target="_blank" href="parse.php?redirect=<a href="http://mail.python.org/mailman/listinfo/pythonmac-sig">http://mail.python.org/mailman/listinfo/pythonmac-sig</a>"><span style="color: red;">http://mail.python.org/mailman/listinfo/pythonmac-sig</span></a></span><br>

<br>

<br>

</blockquote></HTML>