protoc with grpc_python_plugin: google/protobuf/any.proto: File not found - protocol-buffers

I'm running this command:
protoc protobuf/file.proto --proto_path=protobuf --proto_path=protobuf --python_out=out/builtin_pb --grpc_out=out/builtin_pb --plugin=protoc-gen-grpc=/usr/local/bin/grpc_python_plugin
where file.proto has:
syntax = "proto3";
import "google/protobuf/any.proto";
And stuff like:
google.protobuf.Any arg = 3;
However, it has the error:
google/protobuf/any.proto: File not found.
bess_msg.proto: Import "google/protobuf/any.proto" was not found or had errors.
bess_msg.proto:251:3: "google.protobuf.Any" is not defined
...
Are there any steps I can follow to make sure any.proto is properly installed?
Thanks

I had this error when trying to compile a protobuf to python on Ubuntu. My problem was that I had installed the compiler using sudo apt install protobuf-compiler, but I had not installed the resources using sudo apt install libprotobuf-dev.
Thanks to this answer for showing me the error of my ways.

I recently encountered this issue and realized that I was using protobuf 3.0. Simply upgrade the protobuf compiler to the latest version (3.6 in my case) for definitions on those types.

Related

Cannot Find libatomic.so.1

I'm trying to build snappy, but I end up getting the error
error while loading shared libraries: libatomic.so.1: cannot open shared object file: No such file or directory
When I go look in /lib/gcc/x86_64-redhat-linux/8/ I do find a file libatomic.so
Which has the contents
INPUT ( /usr/lib64/libatomic.so.1.2.0 )
then if I go looking in /usr/lb64/ only these files exist
libatomic_ops_gpl.so.1
libatomic_ops_gpl.so.1.1.2
libatomic_ops.so.1
libatomic_ops.so.1.1.1
I try doing yum install libatomic_ops.x86_64, it says nothing to do. That is the only package that comes up when doing yum search libatomic.
I'm confused with how to solve this issue. Thanks!
For what it matters, this is a redhat 8.6 machine.
This was solved by running dnf install gcc, this updated gcc and allowed for yum install libatomic to work

How to install YAML package in Pycharm (Python 3.8 / 3.9)?

How do I install the YAML package in Pycharm? I want to use it for a python 3.8 (or 3.9) project. When trying to install the package via the project settings I get the following error:
ERROR: Could not find a version that satisfies the requirement yaml
Alternatively I tried to search for any YAML package available via the command window by typing pip search yaml. Then I get the following error:
ERROR: XMLRPC request failed [code: -32500]
Any advice?
Thanks
pip install pyyaml
I think that this is what you are looking for: https://pypi.org/project/PyYAML/
It gets imported as import yaml

Cannot install gotk3, getting GdkMonitor error

I tried to use gotk3 for creating desktop application. I follow the instruction in gotk3 wiki and this installing-on-linux wiki to install it. But then I get this error while executing go get -v:
gcc errors for preamble:
In file included from ../../gotk3/gotk3/gdk/gdk_since_3_22.go:23:0:
./gdk_since_3_22.go.h:22:8: error: unknown type name 'GdkMonitor'
static GdkMonitor *
^
I've tried to delete the gotk3 directory, and then trying to go get -v again, but still, it didn't work.
I also checked the GTK version that installed in my Ubuntu 16.04 using apt-cache policy libgtk2.0-0 libgtk-3-0 | grep Installed. And it shows this:
Installed: 2.24.30-1ubuntu1.16.04.2
Installed: 3.18.9-1ubuntu3.3
What did I do wrong? Thanks
GdkMonitor was introduced in GTK+ 3.22. Your version is 3.18.
go get -tags gtk_3_18 github.com/gotk3/gotk3/gtk at the very beginning of building (see here NOTE section) should fix things

Agave dependency error

I am trying to install Agave under Fedora, but I got this error:
configure: error: gnome-doc-utils >= 0.3.2 not found
I tried to compile and install the gnome-doc-utils from this page, but i still got this error,and when i try the
yum list installed gnome-doc-utils*
command, I can't find the package. Do I have to register the package after installing? I don't think I have a error for the make install, because I don't see any the text error in the process, or I could be wrong.
In general, package managers (tools like yum) don't know that something has been installed on your machine unless it was installed as a package. If an agave package for Fedora exists, I would suggest using that instead of compiling from source.

easy_install M2Crypto failing on Windows platform

I am attempting to install M2Crypto on a Windows XP platform. I have Python, easy_install and SWIG installed, but when I attempt to easy_install M2Crypto I get the following:
SWIG\_m2crypto.i(31) : Error: Unable to find 'openssl\opensslv.h'
SWIG\_m2crypto.i(45) : Error: Unable to find 'openssl\safestack.h'
SWIG\_evp.i(12) : Error: Unable to find 'openssl\opensslconf.h'
SWIG\_ec.i(7) : Error: Unable to find 'openssl\opensslconf.h'
error: Setup script exited with error: command 'swig.exe' failed with exit status 1
I have read elsewhere that people have suggested easy_install openssl-devel, but that simply tells me that there are no packages found with that name. Is the name perhaps case-sensitive (I've tried various permutations without success), or does that advice not apply to Windows?
I'm not looking for alternatives to M2Crypto. I am picking up some existing code that uses it, so I need to get my development environment to be able to run what's already written.
As jay stated in his answer you should try to build it from source. And I tried. The setup.py does not recognize the --openssl option. Looking at the output from the default setup.py I realized that the search location was c:\pkg and not c:\pkg\openssl.
The solution:
Download and install OpenSSL from Win32 OpenSSL
Copy the lib and include folders to c:\pkg
Check that swig.exe is available in your path
Run easy_install M2Crypto
Worked for me like a charm.
Had a similar problem. After downloading the source package of M2Crypto and reading the INSTALL file I found the following:
Differences when installing on Windows
--------------------------------------
Before building from source, you need to install OpenSSL's include files,
import libraries and DLLs. By default setup.py assumes that OpenSSL include
files are in ``c:\pkg\openssl\include``, and the import libraries
in ``c:\pkg\openssl\lib``. As with other platforms, you can specify a different
OpenSSL location with --openssl option to build_ext command.

Resources