Please raise the issue with upstream since it feels like it would be a
better location to fix up for it, right? ;)
Thanks in advance!
On Sun, 03 Jul 2016, Michael Hanke wrote:
> Package: psychopy
> Version: 1.83.04.dfsg-2
> Severity: normal
> When using PsychoPy in an IPython session the following happens:
> ================================
> In [1]: import psychopy.iohub as iohub
> In [2]: io = iohub.launchHubServer()
> ---------------------------------------------------------------------------
> IOError Traceback (most recent call last)
> <ipython-input-2-bbf8577c69ca> in <module>()
> ----> 1 io = iohub.launchHubServer()
> /usr/lib/python2.7/dist-packages/psychopy/iohub/client/__init__.pyc in
> launchHubServer(**kwargs)
> 1502 #print "IOHUB CONFIG: ",ioConfig
> 1503 # Start the ioHub Server
> -> 1504 return ioHubConnection(ioConfig)
> 1505
> 1506 ### ioHubExperimentRuntime ####
> /usr/lib/python2.7/dist-packages/psychopy/iohub/client/__init__.pyc in
> __init__(self, ioHubConfig, ioHubConfigAbsPath)
> 283
> 284 self._shutdown_attempted=False
> --> 285 self.iohub_status = self._startServer(ioHubConfig,
> ioHubConfigAbsPath)
> 286 if self.iohub_status != "OK":
> 287 raise RuntimeError("Error starting ioHub server:
> %s"%(self.iohub_status))
> /usr/lib/python2.7/dist-packages/psychopy/iohub/client/__init__.pyc in
> _startServer(self, ioHubConfig, ioHubConfigAbsPath)
> 988 self.registerPygletWindowHandles(*whs)
> 989
> --> 990 iopFile= open(iopFileName,'w')
> 991 iopFile.write("ioHub PID: "+str(Computer.iohub_process_id))
> 992 iopFile.flush()
> IOError: [Errno 13] Permission denied: '/usr/bin/.iohpid'
> ================================
> The reason is that in psychopy/iohub/client/__init__.py line 904 the
> path of sys.argv[0] is used as the location to place a PID file.
> Obviously, this fails for a system install of IPython.
> It seems that this isn't the only time this paradigm is used:
> % grep -R "rootScript" .
> ./iohub/client/__init__.py: rootScriptPath =
> os.path.dirname(sys.argv[0])
> ./iohub/util/targetpositionsequence.py: rootScriptPath =
> os.path.dirname(sys.argv[0])
> ./iohub/launchHubProcess.py: rootScriptPathDir=sys.argv[2]
> A solution for Debian could be to replace this with
> /var/run/user/.../psychopy,
> but upstream may want to adopt a more general solution. appdirs doesn't
> seem to support such, though.
> -- System Information:
> Debian Release: stretch/sid
> APT prefers testing
> APT policy: (650, 'testing')
> Architecture: amd64 (x86_64)
> Foreign Architectures: i386
> Kernel: Linux 4.3.0-1-amd64 (SMP w/4 CPU cores)
> Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
> Shell: /bin/sh linked to /bin/dash
> Init: systemd (via /run/systemd/system)
> Versions of packages psychopy depends on:
> ii python 2.7.11-1
> ii python-configobj 5.0.6-2
> ii python-lxml 3.6.0-1
> ii python-matplotlib 1.5.1-1+b1
> ii python-numpy 1:1.10.4-2
> ii python-opengl 3.0.2-1
> ii python-pygame 1.9.1release+dfsg-10+b1
> ii python-pyglet 1.1.4.dfsg-3
> ii python-scipy 0.17.0-1+b1
> Versions of packages psychopy recommends:
> ii ipython 2.4.1-1
> ii libxxf86vm1 1:1.1.4-1
> ii python-gevent 1.1.1-1
> ii python-imaging 3.1.1-1
> ii python-msgpack 0.4.6-1+b2
> pn python-opencv <none>
> ii python-openpyxl 2.3.0-1
> ii python-pandas 0.17.1-3
> ii python-psutil 3.4.2-1+b1
> ii python-pygame 1.9.1release+dfsg-10+b1
> ii python-pyglet 1.1.4.dfsg-3
> ii python-pyo 0.7.9-1
> ii python-serial 3.0.1-1
> ii python-wxgtk2.8 2.8.12.1+dfsg2-2
> ii python-wxgtk3.0 3.0.2.0+dfsg-1+b1
> ii python-xlib 0.14+20091101-5
> ii python-yaml 3.11-3+b1
> Versions of packages psychopy suggests:
> pn libavbin0 <none>
> pn python-iolabs <none>
> pn python-pyxid <none>
> -- no debconf information
--
Yaroslav O. Halchenko
Center for Open Neuroscience http://centerforopenneuroscience.org
Dartmouth College, 419 Moore Hall, Hinman Box 6207, Hanover, NH 03755
Phone: +1 (603) 646-9834 Fax: +1 (603) 646-1419
WWW: http://www.linkedin.com/in/yarik