intake / intake/python-snappy

IOError on Python 2.7 / No such directory __pycache__/

Ouverte
#49 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Python
Étoiles
490
Forks
104
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

I try to use snappy which use cffi with a non-root user that can't create the __pycache__/ dir.
I got :
```
STDERR: Traceback (most recent call last):
File "/opt/graphite/pypy/bin/django-admin", line 11, in
sys.exit(execute_from_command_line())
File "/opt/graphite/pypy/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line
utility.execute()
File "/opt/graphite/pypy/site-packages/django/core/management/__init__.py", line 302, in execute
settings.INSTALLED_APPS
File "/opt/graphite/pypy/site-packages/django/conf/__init__.py", line 55, in __getattr__
self._setup(name)
File "/opt/graphite/pypy/site-packages/django/conf/__init__.py", line 43, in _setup
self._wrapped = Settings(settings_module)
File "/opt/graphite/pypy/site-packages/django/conf/__init__.py", line 99, in __init__
mod = importlib.import_module(self.SETTINGS_MODULE)
File "/opt/pypy/pypy-5.7.1-linux_x86_64-portable/lib-python/2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "/opt/graphite/webapp/graphite/settings.py", line 160, in
from graphite.local_settings import * # noqa
File "/opt/graphite/webapp/graphite/local_settings.py", line 53, in
from graphite.local_settings_dynamic import *
File "/opt/graphite/webapp/graphite/local_settings_dynamic.py", line 1, in
from biggraphite.plugins import graphite
File "/opt/graphite/pypy/site-packages/biggraphite/plugins/graphite.py", line 30, in
from biggraphite import graphite_utils
File "/opt/graphite/pypy/site-packages/biggraphite/graphite_utils.py", line 17, in
from biggraphite import utils as bg_utils
File "/opt/graphite/pypy/site-packages/biggraphite/utils.py", line 22, in
from biggraphite.drivers import cassandra as bg_cassandra
File "/opt/graphite/pypy/site-packages/biggraphite/drivers/cassandra.py", line 34, in
from cassandra import cluster as c_cluster
File "/opt/graphite/pypy/site-packages/cassandra/cluster.py", line 46, in
from cassandra.connection import (ConnectionException, ConnectionShutdown,
File "/opt/graphite/pypy/site-packages/cassandra/connection.py", line 80, in
import snappy
File "/opt/graphite/pypy/site-packages/snappy.py", line 50, in
from snappy_cffi import UncompressError, compress, decompress, \
File "/opt/graphite/pypy/site-packages/snappy_cffi.py", line 169, in
''', libraries=["snappy"])
File "/opt/pypy/pypy-5.7.1-linux_x86_64-portable/lib_pypy/cffi/api.py", line 438, in verify
lib = self.verifier.load_library()
File "/opt/pypy/pypy-5.7.1-linux_x86_64-portable/lib_pypy/cffi/verifier.py", line 113, in load_library
self._write_source()
File "/opt/pypy/pypy-5.7.1-linux_x86_64-portable/lib_pypy/cffi/verifier.py", line 202, in _write_source
with open(self.sourcefilename, "w") as fp:
IOError: [Errno 2] No such file or directory: '/opt/graphite/pypy/site-packages/__pycache__/_cffi__g762f05ffx6bf5342b.c'
```

As far as I understand, it calls a deprecated method of cffi (http://cffi.readthedocs.io/en/latest/whatsnew.html?#v1-0-0).
A workaround would be to create __pycache__/ directory at the installation as root.

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

Start in snappy_cffi.py around the cffi verify call, then compare it with the cffi API referenced in the issue and the verifier.py traceback. Reproduce the non-root Python 2.7 installation case; done means importing snappy no longer fails when __pycache__ does not already exist.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
python
Domaine
backend
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
45/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.