代码之家  ›  专栏  ›  技术社区  ›  Hossein

rrule中存在无效语法错误。python3中导入caffe时的py。6.

  •  3
  • Hossein  · 技术社区  · 7 年前

    我建造 Caffe Pycaffe 然而,成功的是,有一件事我自己无法解决。
    在python中导入caffe时,出现以下错误:

    Python 3.6.4 |Anaconda, Inc.| (default, Jan 16 2018, 18:10:19) 
    [GCC 7.2.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import caffe
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/media/breeze/tmpstore/caffe-master/python/caffe/__init__.py", line 1, in <module>
        from .pycaffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, RMSPropSolver, AdaDeltaSolver, AdamSolver, NCCL, Timer
      File "/media/breeze/tmpstore/caffe-master/python/caffe/pycaffe.py", line 15, in <module>
        import caffe.io
      File "/media/breeze/tmpstore/caffe-master/python/caffe/io.py", line 2, in <module>
        import skimage.io
      File "/home/breeze/anaconda3/lib/python3.6/site-packages/skimage/io/__init__.py", line 15, in <module>
        reset_plugins()
      File "/home/breeze/anaconda3/lib/python3.6/site-packages/skimage/io/manage_plugins.py", line 93, in reset_plugins
        _load_preferred_plugins()
      File "/home/breeze/anaconda3/lib/python3.6/site-packages/skimage/io/manage_plugins.py", line 73, in _load_preferred_plugins
        _set_plugin(p_type, preferred_plugins['all'])
      File "/home/breeze/anaconda3/lib/python3.6/site-packages/skimage/io/manage_plugins.py", line 85, in _set_plugin
        use_plugin(plugin, kind=plugin_type)
      File "/home/breeze/anaconda3/lib/python3.6/site-packages/skimage/io/manage_plugins.py", line 255, in use_plugin
        _load(name)
      File "/home/breeze/anaconda3/lib/python3.6/site-packages/skimage/io/manage_plugins.py", line 299, in _load
        fromlist=[modname])
      File "/home/breeze/anaconda3/lib/python3.6/site-packages/skimage/io/_plugins/matplotlib_plugin.py", line 3, in <module>
        import matplotlib.pyplot as plt
      File "/home/breeze/anaconda3/lib/python3.6/site-packages/matplotlib/pyplot.py", line 40, in <module>
        from matplotlib.figure import Figure, figaspect
      File "/home/breeze/anaconda3/lib/python3.6/site-packages/matplotlib/figure.py", line 39, in <module>
        from matplotlib.axes import Axes, SubplotBase, subplot_class_factory
      File "/home/breeze/anaconda3/lib/python3.6/site-packages/matplotlib/axes/__init__.py", line 4, in <module>
        from ._subplots import *
      File "/home/breeze/anaconda3/lib/python3.6/site-packages/matplotlib/axes/_subplots.py", line 10, in <module>
        from matplotlib.axes._axes import Axes
      File "/home/breeze/anaconda3/lib/python3.6/site-packages/matplotlib/axes/_axes.py", line 23, in <module>
        import matplotlib.dates as _  # <-registers a date unit converter
      File "/home/breeze/anaconda3/lib/python3.6/site-packages/matplotlib/dates.py", line 148, in <module>
        from dateutil.rrule import (rrule, MO, TU, WE, TH, FR, SA, SU, YEARLY,
      File "/home/breeze/anaconda3/lib/python3.6/site-packages/dateutil/rrule.py", line 55
        raise ValueError, "Can't create weekday with n == 0"
                        ^
    SyntaxError: invalid syntax
    

    为了记录在案,这里是 Make.config 我用来构建Caffe的文件内容:

    ## Refer to http://caffe.berkeleyvision.org/installation.html
    # Contributions simplifying and improving our build system are welcome!
    
    # cuDNN acceleration switch (uncomment to build with cuDNN).
    USE_CUDNN := 1
    
    # CPU-only switch (uncomment to build without GPU support).
    # CPU_ONLY := 1
    
    # uncomment to disable IO dependencies and corresponding data layers
    # USE_OPENCV := 0
    # USE_LEVELDB := 0
    # USE_LMDB := 0
    
    # uncomment to allow MDB_NOLOCK when reading LMDB files (only if necessary)
    #   You should not set this flag if you will be reading LMDBs with any
    #   possibility of simultaneous read and write
    # ALLOW_LMDB_NOLOCK := 1
    
    # Uncomment if you're using OpenCV 3
     OPENCV_VERSION := 3
    
    # To customize your choice of compiler, uncomment and set the following.
    # N.B. the default for Linux is g++ and the default for OSX is clang++
    # CUSTOM_CXX := g++
    
    # CUDA directory contains bin/ and lib/ directories that we need.
    CUDA_DIR := /usr/local/cuda
    # On Ubuntu 14.04, if cuda tools are installed via
    # "sudo apt-get install nvidia-cuda-toolkit" then use this instead:
    # CUDA_DIR := /usr
    
    # CUDA architecture setting: going with all of them.
    # For CUDA < 6.0, comment the *_50 through *_61 lines for compatibility.
    # For CUDA < 8.0, comment the *_60 and *_61 lines for compatibility.
    # For CUDA >= 9.0, comment the *_20 and *_21 lines for compatibility.
    CUDA_ARCH := -gencode arch=compute_30,code=sm_30 \
            -gencode arch=compute_35,code=sm_35 \
            -gencode arch=compute_50,code=sm_50 \
            -gencode arch=compute_52,code=sm_52 \
            -gencode arch=compute_60,code=sm_60 \
            -gencode arch=compute_61,code=sm_61 \
            -gencode arch=compute_61,code=compute_61
    
    # BLAS choice:
    # atlas for ATLAS (default)
    # mkl for MKL
    # open for OpenBlas
    BLAS := atlas
    # Custom (MKL/ATLAS/OpenBLAS) include and lib directories.
    # Leave commented to accept the defaults for your choice of BLAS
    # (which should work)!
    # BLAS_INCLUDE := /path/to/your/blas
    # BLAS_LIB := /path/to/your/blas
    
    # Homebrew puts openblas in a directory that is not on the standard search path
    # BLAS_INCLUDE := $(shell brew --prefix openblas)/include
    # BLAS_LIB := $(shell brew --prefix openblas)/lib
    
    # This is required only if you will compile the matlab interface.
    # MATLAB directory should contain the mex binary in /bin.
    # MATLAB_DIR := /usr/local
    # MATLAB_DIR := /Applications/MATLAB_R2012b.app
    
    # NOTE: this is required only if you will compile the python interface.
    # We need to be able to find Python.h and numpy/arrayobject.h.
    #PYTHON_INCLUDE := /usr/include/python2.7 \
    #       /usr/lib/python2.7/dist-packages/numpy/core/include
    # Anaconda Python distribution is quite popular. Include path:
    # Verify anaconda location, sometimes it's in root.
     ANACONDA_HOME := $(HOME)/anaconda3
     PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
             $(ANACONDA_HOME)/include/python3.6m \
             $(ANACONDA_HOME)/lib/python3.6/site-packages/numpy/core/include
    
    # Uncomment to use Python 3 (default is Python 2)
    # Changed boost_python3 to boost_python-py35, andpython3.5m to python3.6m 
    # this is to resolve the : _caffe.so: undefined symbol: _ZN5boost6python6detail11init_moduleER11PyModuleDefPFvvE error 
    # ocurring when importing caffe
     PYTHON_LIBRARIES := boost_python-py35 python3.6m
    # PYTHON_INCLUDE := /usr/include/python3.5m \
    #                 /usr/lib/python3.5/dist-packages/numpy/core/include
    
    # We need to be able to find libpythonX.X.so or .dylib.
    #PYTHON_LIB := /usr/lib
     PYTHON_LIB := $(ANACONDA_HOME)/lib
    
    # for solving lib/libpng16.so.16: undefined reference to `inflateValidate@ZLIB_1.2.9'
    LINKFLAGS := -Wl,-rpath,$(ANACONDA_HOME)/lib
    
    # Homebrew installs numpy in a non standard path (keg only)
    # PYTHON_INCLUDE += $(dir $(shell python -c 'import numpy.core; print(numpy.core.__file__)'))/include
    # PYTHON_LIB += $(shell brew --prefix numpy)/lib
    
    # Uncomment to support layers written in Python (will link against Python libs)
     WITH_PYTHON_LAYER := 1
    
    # Whatever else you find you need goes here.
    INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
    LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
    
    # If Homebrew is installed at a non standard location (for example your home directory) and you use it for general dependencies
    # INCLUDE_DIRS += $(shell brew --prefix)/include
    # LIBRARY_DIRS += $(shell brew --prefix)/lib
    
    # NCCL acceleration switch (uncomment to build with NCCL)
    # https://github.com/NVIDIA/nccl (last tested version: v1.2.3-1+cuda8.0)
    # USE_NCCL := 1
    
    # Uncomment to use `pkg-config` to specify OpenCV library paths.
    # (Usually not necessary -- OpenCV libraries are normally installed in one of the above $LIBRARY_DIRS.)
    # USE_PKG_CONFIG := 1
    
    # N.B. both build and distribute dirs are cleared on `make clean`
    BUILD_DIR := build
    DISTRIBUTE_DIR := distribute
    
    # Uncomment for debugging. Does not work on OSX due to https://github.com/BVLC/caffe/issues/171
    # DEBUG := 1
    
    # The ID of the GPU that 'make runtest' will use to run unit tests.
    TEST_GPUID := 0
    
    # enable pretty build (comment to see full commands)
    Q ?= @
    

    如你所见,我正在使用 Anaconda3 (python3.6)下面是我添加的内容 bashrc :

    export PATH=/home/breeze/anaconda3/bin:$PATH
    
    export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}  
    export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
    
    export PYTHONPATH=/media/breeze/tmpstore/caffe-master/python:$PYTHONPATH
    
    export LD_LIBRARY_PATH=/media/breeze/tmpstore/caffe-master/distribute/lib:${LD_LIBRARY_PATH}
    

    这里发生了什么?错误消息根本没有任何意义!

    1 回复  |  直到 7 年前
        1
  •  2
  •   Venkatesh Wadawadagi    7 年前

    文件 “/home/breeze/anaconda3/lib/python3.6/site-packages/dateutil/rrule.py”, 第55行 raise ValueError,“无法创建n==0的工作日” ^语法错误:无效语法

    从错误中,您了解需要更新 dateutil lib。

    pip install python-dateutil --upgrade