If I understand your problem correctly:
1. you have the executable path /usr/local/bin/ffmpeg
2. your script executes successfully if run in a python (or ipython)
interpreter started from the terminal
3. your script executes unsuccessfully if run from within Spyder
(standalone app)
If the above is correct, then I think I know what the problem is.
When Spyder is started, the interpreter inherits the following system PATH:
In[6]: os.environ['PATH']
Out[6]:
'/usr/bin:/bin:/usr/sbin:/sbin:/Applications/Spyder.app/Contents/Resources'
which does not include '/usr/local/bin'
I have run into this problem before and found one solution is to modify the
system path in the interpreter's startup script. I've attached the startup
script that I use. The script captures the environment variables from a
standard terminal session, including any statements contained in your bash
profile scripts. On my system I use ~/.profile and /etc/profile for my bash
profiles, but if you use something else (e.g. bashrc, bash_profile, etc.)
you will want to modify the attached script appropriately. In Spyder's
preferences, specify the attached script as the startup script.
Your system path (os.environ['PATH']) in Spyder should now match your PATH
environment variable in a Terminal session (echo $PATH), and scripts run
from within Spyder should be able to find any executables in
'/usr/local/bin'.
Ryan Clary
On Friday, March 1, 2013 4:04:53 AM UTC-8, Laurent PARISE wrote:
>
> Excuse me for my English first.
>
> I use Mac OS 10.6.8 Spyder for some time with great pleasure. Thank you for
> your work!
> However, since yesterday I have a problem with creating animations (MP4)
> with matplotlib.
>
> 1. My script works from the command line (and make an mp4 file), but I
> get an error in Spyder with the same script:
>
> /Applications/Spyder.app/Contents/Resources/lib/python2.7/matplotlib/animation.py:
>
> 598:
> UserWarning: ffmpeg MovieWriter unavailable
> warnings.warn ("% s MovieWriter unavailable" writer%)
>
> It seems that Spyder's Python can not find the 'ffmpeg' program that
> creates the MP4 file.
>
> 2. I did some tests: if I start Spyder in the console command line, my script
> is compiled correctly in Spyder ! But if I start Spyder by clicking on
> the icon in the Applications folder, python does not find 'ffmpeg' that isin
> '/usr/local/bin'.
>
> In fact, '/usr/local/bin' is in my PATH in the console (I type 'env' in
> the console to see it), but Spyder do not know if I run it from the
> Applications folder ...
>
> Could you tell me if it is possible to tell Spyder, it must use the PATH
> variable
> to launch external programs (if my problem is it) ?
>
>
> Thanks again.
> Laurent.
>
>
--
You received this message because you are subscribed to the Google Groups
"spyder" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/spyderlib?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
import os
import subprocess
envstr = subprocess.check_output('source /etc/profile; source ~/.profile; printenv', shell=True)
env = [a.split('=') for a in envstr.strip().split('\n')]
os.environ.update(env)