paulscherrerinstitute / pcaspy

Portable Channel Access Server in Python
BSD 3-Clause "New" or "Revised" License
32 stars 24 forks source link

Broken installation for Debian 10 #78

Closed MarcoMontevechi closed 2 years ago

MarcoMontevechi commented 2 years ago

Hello, im trying to reinstall pcaspy in a debian 10 container. pip install pcaspy results in a error which i append below. easy_install is deprecated so now i dont know what to do. cloning the git repository and doing python3 setup.py install results in an error ending in the same "'/usr/bin/x86_64-linux-gnu-g++' failed with exit code 1"

Am i doing anything wrong? Thanks in advance.

pip install error message:

marco# pip install pcaspy
/usr/lib/python3/dist-packages/secretstorage/dhcrypto.py:15: CryptographyDeprecationWarning: int_from_bytes is deprecated, use int.from_bytes instead
  from cryptography.utils import int_from_bytes
/usr/lib/python3/dist-packages/secretstorage/util.py:19: CryptographyDeprecationWarning: int_from_bytes is deprecated, use int.from_bytes instead
  from cryptography.utils import int_from_bytes
Collecting pcaspy
  Using cached pcaspy-0.7.3.tar.gz (35 kB)
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [114 lines of output]
      running egg_info
      creating /tmp/pip-pip-egg-info-ygsg2jsj/pcaspy.egg-info
      writing /tmp/pip-pip-egg-info-ygsg2jsj/pcaspy.egg-info/PKG-INFO
      writing dependency_links to /tmp/pip-pip-egg-info-ygsg2jsj/pcaspy.egg-info/dependency_links.txt
      writing top-level names to /tmp/pip-pip-egg-info-ygsg2jsj/pcaspy.egg-info/top_level.txt
      writing manifest file '/tmp/pip-pip-egg-info-ygsg2jsj/pcaspy.egg-info/SOURCES.txt'
      reading manifest file '/tmp/pip-pip-egg-info-ygsg2jsj/pcaspy.egg-info/SOURCES.txt'
      reading manifest template 'MANIFEST.in'
      /usr/local/lib/python3.7/dist-packages/setuptools/command/egg_info.py:637: SetuptoolsDeprecationWarning: Custom 'build_py' does not implement 'get_data_files_without_manifest'.
      Please extend command classes from setuptools instead of distutils.
        SetuptoolsDeprecationWarning
      warning: no previously-included files found matching 'pcaspy/cas.py'
      warning: no previously-included files found matching 'pcaspy/*.dll'
      adding license file 'LICENSE'
      writing manifest file '/tmp/pip-pip-egg-info-ygsg2jsj/pcaspy.egg-info/SOURCES.txt'
      running build_ext
      building 'pcaspy._cas' extension
      swigging pcaspy/casdef.i to pcaspy/casdef_wrap.cpp
      swig -python -c++ -threads -nodefaultdtor -I/usr/local/epics/base/include -o pcaspy/casdef_wrap.cpp pcaspy/casdef.i
      pcaspy/casdef.i:46: Warning 362: operator= ignored
      pcaspy/casdef.i:115: Warning 473: Returning a pointer or reference in a director method is not recommended.
      pcaspy/casdef.i:115: Warning 473: Returning a pointer or reference in a director method is not recommended.
      creating build
      creating build/temp.linux-x86_64-cpython-37
      creating build/temp.linux-x86_64-cpython-37/pcaspy
      x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -flto -fuse-linker-plugin -ffat-lto-objects -fPIC -I/usr/local/epics/base/include -I/usr/local/epics/base/include/os/Linux -I/usr/local/epics/base/include/compiler/gcc -I/usr/include/python3.7m -c pcaspy/casdef_wrap.cpp -o build/temp.linux-x86_64-cpython-37/pcaspy/casdef_wrap.o
      In file included from /usr/local/epics/base/include/gdd.h:511,
                       from /usr/local/epics/base/include/casdef.h:30,
                       from pcaspy/casdef_wrap.cpp:3605:
      /usr/local/epics/base/include/gddI.h: In member function ‘gdd& gdd::operator=(const gdd&)’:
      /usr/local/epics/base/include/gddI.h:117:30: warning: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of type ‘class gdd’ with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
        { memcpy(this,&v,sizeof(gdd)); return *this; }
                                    ^
      In file included from /usr/local/epics/base/include/casdef.h:30,
                       from pcaspy/casdef_wrap.cpp:3605:
      /usr/local/epics/base/include/gdd.h:96:23: note: ‘class gdd’ declared here
       class epicsShareClass gdd
                             ^~~
      x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -flto -fuse-linker-plugin -ffat-lto-objects -fPIC -I/usr/local/epics/base/include -I/usr/local/epics/base/include/os/Linux -I/usr/local/epics/base/include/compiler/gcc -I/usr/include/python3.7m -c pcaspy/channel.cpp -o build/temp.linux-x86_64-cpython-37/pcaspy/channel.o
      In file included from /usr/local/epics/base/include/gdd.h:511,
                       from /usr/local/epics/base/include/casdef.h:30,
                       from pcaspy/pv.h:4,
                       from pcaspy/channel.cpp:4:
      /usr/local/epics/base/include/gddI.h: In member function ‘gdd& gdd::operator=(const gdd&)’:
      /usr/local/epics/base/include/gddI.h:117:30: warning: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of type ‘class gdd’ with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
        { memcpy(this,&v,sizeof(gdd)); return *this; }
                                    ^
      In file included from /usr/local/epics/base/include/casdef.h:30,
                       from pcaspy/pv.h:4,
                       from pcaspy/channel.cpp:4:
      /usr/local/epics/base/include/gdd.h:96:23: note: ‘class gdd’ declared here
       class epicsShareClass gdd
                             ^~~
      x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -flto -fuse-linker-plugin -ffat-lto-objects -fPIC -I/usr/local/epics/base/include -I/usr/local/epics/base/include/os/Linux -I/usr/local/epics/base/include/compiler/gcc -I/usr/include/python3.7m -c pcaspy/pv.cpp -o build/temp.linux-x86_64-cpython-37/pcaspy/pv.o
      In file included from /usr/local/epics/base/include/gdd.h:511,
                       from /usr/local/epics/base/include/casdef.h:30,
                       from pcaspy/channel.h:4,
                       from pcaspy/pv.cpp:4:
      /usr/local/epics/base/include/gddI.h: In member function ‘gdd& gdd::operator=(const gdd&)’:
      /usr/local/epics/base/include/gddI.h:117:30: warning: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of type ‘class gdd’ with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
        { memcpy(this,&v,sizeof(gdd)); return *this; }
                                    ^
      In file included from /usr/local/epics/base/include/casdef.h:30,
                       from pcaspy/channel.h:4,
                       from pcaspy/pv.cpp:4:
      /usr/local/epics/base/include/gdd.h:96:23: note: ‘class gdd’ declared here
       class epicsShareClass gdd
                             ^~~
      creating build/lib.linux-x86_64-cpython-37
      creating build/lib.linux-x86_64-cpython-37/pcaspy
      x86_64-linux-gnu-g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro build/temp.linux-x86_64-cpython-37/pcaspy/casdef_wrap.o build/temp.linux-x86_64-cpython-37/pcaspy/channel.o build/temp.linux-x86_64-cpython-37/pcaspy/pv.o /usr/local/epics/base/lib/linux-x86_64/libasIoc.a /usr/local/epics/base/lib/linux-x86_64/libcas.a /usr/local/epics/base/lib/linux-x86_64/libca.a /usr/local/epics/base/lib/linux-x86_64/libgdd.a /usr/local/epics/base/lib/linux-x86_64/libCom.a -L/usr/local/epics/base/lib/linux-x86_64 -L/usr/lib -lrt -lreadline -o build/lib.linux-x86_64-cpython-37/pcaspy/_cas.cpython-37m-x86_64-linux-gnu.so
      /usr/bin/ld: cannot find -lreadline
      collect2: error: ld returned 1 exit status
      Traceback (most recent call last):
        File "/usr/local/lib/python3.7/dist-packages/setuptools/_distutils/unixccompiler.py", line 249, in link
          self.spawn(linker + ld_args)
        File "/usr/local/lib/python3.7/dist-packages/setuptools/_distutils/ccompiler.py", line 917, in spawn
          spawn(cmd, dry_run=self.dry_run, **kwargs)
        File "/usr/local/lib/python3.7/dist-packages/setuptools/_distutils/spawn.py", line 69, in spawn
          "command %r failed with exit code %s" % (cmd, exitcode))
      distutils.errors.DistutilsExecError: command '/usr/bin/x86_64-linux-gnu-g++' failed with exit code 1

      During handling of the above exception, another exception occurred:

      Traceback (most recent call last):
        File "<string>", line 36, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/tmp/pip-install-2b28pnv4/pcaspy_0f4cb215ee6b434f822e6db2480662ba/setup.py", line 186, in <module>
          build_py.run()
        File "/tmp/pip-install-2b28pnv4/pcaspy_0f4cb215ee6b434f822e6db2480662ba/setup.py", line 26, in run
          self.run_command('build_ext')
        File "/usr/local/lib/python3.7/dist-packages/setuptools/_distutils/cmd.py", line 313, in run_command
          self.distribution.run_command(command)
        File "/usr/local/lib/python3.7/dist-packages/setuptools/dist.py", line 1229, in run_command
          super().run_command(command)
        File "/usr/local/lib/python3.7/dist-packages/setuptools/_distutils/dist.py", line 986, in run_command
          cmd_obj.run()
        File "/usr/local/lib/python3.7/dist-packages/setuptools/command/build_ext.py", line 79, in run
          _build_ext.run(self)
        File "/usr/local/lib/python3.7/dist-packages/setuptools/_distutils/command/build_ext.py", line 339, in run
          self.build_extensions()
        File "/usr/local/lib/python3.7/dist-packages/setuptools/_distutils/command/build_ext.py", line 448, in build_extensions
          self._build_extensions_serial()
        File "/usr/local/lib/python3.7/dist-packages/setuptools/_distutils/command/build_ext.py", line 473, in _build_extensions_serial
          self.build_extension(ext)
        File "/usr/local/lib/python3.7/dist-packages/setuptools/command/build_ext.py", line 202, in build_extension
          _build_ext.build_extension(self, ext)
        File "/usr/local/lib/python3.7/dist-packages/setuptools/_distutils/command/build_ext.py", line 559, in build_extension
          target_lang=language)
        File "/usr/local/lib/python3.7/dist-packages/setuptools/_distutils/ccompiler.py", line 717, in link_shared_object
          extra_preargs, extra_postargs, build_temp, target_lang)
        File "/usr/local/lib/python3.7/dist-packages/setuptools/_distutils/unixccompiler.py", line 251, in link
          raise LinkError(msg)
      distutils.errors.LinkError: command '/usr/bin/x86_64-linux-gnu-g++' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
MarcoMontevechi commented 2 years ago

Problem solved with apt-get install swig libreadline-dev