adrienemery / lnd-grpc-client Goto Github PK
View Code? Open in Web Editor NEWA python grpc client/async client for LND ⚡⚡⚡
License: MIT License
A python grpc client/async client for LND ⚡⚡⚡
License: MIT License
Not sure if this is an issue with lnd-grpc-client
or lnd
itself, (trying to find out),
When I call lookupinvoice with the lncli
I get a response that includes fields I need:
"amt_paid": "0",
"amt_paid_sat": "0",
"amt_paid_msat": "0",
"state": "CANCELED"
But when I run via lnd-grpc-client
I get a different response that is missing these fields:
r_preimage: "\240\262.\331*\010\265&\257m\226\t\025\301_\2658\267\355X\343B8\213|\361!\005w\302\366\022"
r_hash: "\n\215P>\374\237\004\315\220\266\351\270h\036\337\227\271E\005\261\345\263]\376c\006\010C\322{m\221"
value: 2811
creation_date: 1610409561
payment_request: "lnbc28110n1p0leejepp5p2x4q0hunuzvmy9kaxuxs8klj7u52pd3uke4mlnrqcyy85nmdkgsdqqcqzpgsp5hs35l6s2rwttttuegvfy63mlle8ppp822w0akuh98024s5zq3hes9qyyssqfl5x349pqp2lahcc2aqa6d6epsazm4wysgtqmln59ywc6jc9tj0q44tsfkxsspgt64pscng4kwu5l2vp33gnzaauss69he5jpkqguzcp7v35tm"
expiry: 3600
cltv_expiry: 40
add_index: 163
How can I get a response that includes amount paid?
I tried generating my own rpc_pb2.py
using protoc rpc.proto
but even then I get a response that differs from lndcli
...
expiry: 3600
cltv_expiry: 40
add_index: 160
value_msat: 2825000
features {
key: 9
value {
name: "tlv-onion"
is_known: true
}
}
features {
key: 14
value {
name: "payment-addr"
is_required: true
is_known: true
}
}
features {
key: 17
value {
name: "multi-path-payments"
is_known: true
}
}
This looks closer but is still missing what I need. Is this perhaps an issue with lndrpc
itself?
Any help would be greatly appreciated. Otherwise I'm going to have to use ssh and subprocesses...
I am confused by the send_payment method, I am trying to use it similarly to other methods, but it says the argument does not exist.
>>> lnd.send_payment(
... mypk,
... outgoing_chan_ids=[112342341234],
... last_hop_pubkey=base64.b64encode(getChannelRemotePK("22446688101010").encode("UTF-8")),
... amt=12345,
... payment_request=pr,
... timeout_seconds=60,
... fee_limit_msat=10000,
... allow_self_payment=True,
... max_parts=1,
... no_inflight_updates=True,
... )
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/skorn/Documents/env/lib/python3.8/site-packages/lndgrpc/errors.py", line 19, in wrapper
return fnc(*args, **kwargs)
TypeError: send_payment() got an unexpected keyword argument 'outgoing_chan_ids'
>>> lnd.send_payment(
... mypk,
... outgoing_chan_id=112342341234,
... last_hop_pubkey=base64.b64encode(getChannelRemotePK("22446688101010").encode("UTF-8")),
... amt=12345,
... payment_request=pr,
... timeout_seconds=60,
... fee_limit_msat=10000,
... allow_self_payment=True,
... max_parts=1,
... no_inflight_updates=True,
... )
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/skorn/Documents/env/lib/python3.8/site-packages/lndgrpc/errors.py", line 19, in wrapper
return fnc(*args, **kwargs)
TypeError: send_payment() got an unexpected keyword argument 'outgoing_chan_id'
>>> lnd.send_payment(
... dest=mypk,
... outgoing_chan_id=112342341234,
... last_hop_pubkey=base64.b64encode(getChannelRemotePK("22446688101010").encode("UTF-8")),
... amt=12345,
... payment_request=pr,
... timeout_seconds=60,
... fee_limit_msat=10000,
... allow_self_payment=True,
... max_parts=1,
... no_inflight_updates=True,
... )
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/skorn/Documents/env/lib/python3.8/site-packages/lndgrpc/errors.py", line 19, in wrapper
return fnc(*args, **kwargs)
TypeError: send_payment() got an unexpected keyword argument 'dest'
Any idea what am I doing wrong, I am trying to do a circular rebalance?
Do you know if this is using paymentV1 or PaymentV2?
I'm having trouble installing this with Python3. I'm on Ubuntu, Python 3.5.2, Pip 9.0.1. I get this error:
Collecting lndgrpc
Downloading https://files.pythonhosted.org/packages/51/70/f356ec69c1d8f4da5b59bc42c2aba5ce62cda6db8c00491833c44e07461f/lndgrpc-0.1.2-py3-none-any.whl
Collecting aiogrpc (from lndgrpc)
Could not find a version that satisfies the requirement aiogrpc (from lndgrpc) (from versions: )
No matching distribution found for aiogrpc (from lndgrpc)
list_invoices()
returns a rpc_pb2.ListInvoiceResponse
.
invoices {
r_preimage: "\030\324\300\2421\232\341p\306\237\2662\210\335\035\326\256\346W\226\025\367\302\300\362\\\301\221\237\031\267\360"
r_hash: "\362\303\271\025RG\014x[!\206\346(k+\0226c\301\256u\305\247\204@\320e\235\213Q\334\325"
value: 100
creation_date: 1528903408
payment_request: "lntb1u1pdjzdhspp57tpmj92jgux8skepsmnzs6etzgmx8sdwwhz60pzq6pjemz63mn2sdqqcqzys2xdd44knpwswu97txpucvxeuhqh0vcrlxk7ufzs4563lm8eeqgehlyma9aszeyfzyp97khtcuds2x4evx8g7ga9fczkn3e9qz9frcgsplgucyw"
expiry: 3600
cltv_expiry: 144
}
invoices {
r_preimage: "\347\357\343F7nB\024\212\365\347\333a5\242\214{\031+\237\240\026\254\213\006\262\231\314\202\031X\177"
r_hash: "~\353\273\265\372\025\252e\303\356\357\225\314\361t\2770\301\321\262!\303\217\200\310\375\320obF1x"
value: 100
creation_date: 1528903465
payment_request: "lntb1u1pdjzdefpp50m4mhd06zk4xtslwa72ueut5hucvr5djy8pclqxglhgx7cjxx9uqdqqcqzys0chnhs4cxdvd6tmawft5f5mncm57glha2rh477fgmfvju6a3khs8w77yg5073h3nhmtxgt7wkw08c7f5l564hx8wfgsupyvy5u49wfqqks3gvy"
expiry: 3600
cltv_expiry: 144
}
Is there an easy way to get this as a json or dict?
Hi, cool library, thanks!
I've been successfully using it for creating invoices, but when I iterate on client.subscribe_invoices()
I don't get anything yielded at all when I create new invoices.
Have you had this working? Thanks!
I'm having trouble running this in Flask in production. Running on localhost the exact same code works fine. I'm thinking it has to do with a permission issue. How do I make sure that my Flask site can execute the code?
from lndgrpc import LNDClient # for LND rpc
def addInvoice(amount, memo):
INVOICE_MACAROON_FILEPATH = '/home/ekerstein/.lnd/invoice.macaroon'
lnd = LNDClient('127.0.0.1:10009', macaroon_filepath=INVOICE_MACAROON_FILEPATH)
return lnd.add_invoice(amount, memo).payment_request
@app.route("/addinvoice")
def add_invoice():
amount = request.args.get('amount', type = int)
memo = request.args.get('memo', type = str)
return jsonify(addInvoice(amount, memo))
I'm able to connect to my Umbrel using the REST API but I'm struggling with getting gRPC (which I think I need for being able to send Keysend payments).
macaroon_folder = ".macaroon"
macaroon_file = "admin.macaroon"
macaroon_path = os.path.join(macaroon_folder, macaroon_file)
cert = os.path.join(macaroon_folder, "tls.cert")
lnd = LNDClient(
macaroon_filepath=macaroon_path,
cert_filepath=cert,
ip_address="10.0.0.5:10009",
network="mainnet",
admin=True
)
always give me this when I try lnd.get_info()
Exception has occurred: _InactiveRpcError (note: full exception trace is shown but execution is paused at: _run_module_as_main)
<_InactiveRpcError of RPC that terminated with:
status = StatusCode.UNAVAILABLE
details = "failed to connect to all addresses"
debug_error_string = "{"created":"@1631694216.210741000","description":"Failed to pick subchannel","file":"src/core/ext/filters/client_channel/client_channel.cc","file_line":3187,"referenced_errors":[{"created":"@1631694216.210741000","description":"failed to connect to all addresses","file":"src/core/lib/transport/error_utils.cc","file_line":146,"grpc_status":14}]}"
>
I'm not sure where I'm going wrong. I'm absolutely certain my umbrel is on 10.0.0.5
on my local net. Docker on the Umbrel seems to be exposing the right port:
405098eccf22 lightninglabs/lnd:v0.13.1-beta "lnd" 23 hours ago Up 13 hours 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:9735->9735/tcp, :::9735->9735/tcp, 0.0.0.0:10009->10009/tcp, :::10009->10009/tcp lnd
Really grateful for any help anyone can offer.
hi there,
I can't create new wallet with lndgrpc. do you know what's the problem?
https://github.com/lightningnetwork/lnd/blob/master/docs/macaroons.md mentions
lncli
also adds a caveat which makes it valid for only 60 seconds by default to help prevent replay in case the macaroon is somehow intercepted in transmission.
I think we could also do this to match the security protections of lncli. This is an enhancement request to add time caveat when using the macaroon.
Suggested way to implement this:
from pymacaroons import Macaroon
m = Macaroon.deserialize(original_macaroon)
m.add_first_party_caveat('X=Y')
m.serialize()
'X=Y'
generate the constraint base on current wall time to match the behaviour of lncli's function macaroons.TimeoutConstraint
"time-before=Z"
where Z is UTC time in RFC3339Nano format https://sourcegraph.com/github.com/go-macaroon-bakery/macaroon-bakery/-/blob/bakery/checkers/time.go#L34 For example: "time-before=2019-01-02T15:04:05.999999999Z07:00"
Hello, first, I love the library which made it much easier for me to work with the grpc lnd client.
That said, the one feature I needed to build my app uses the 'fwdinghistory' argument from lncli, would it be possible to add that as a method in your library - I tried looking for it, but doesn't seem to exist, if it does, please let me know.
Thank you for your time and contribution to the LN ecosystem.
Hi, I'm trying to run:
from lndgrpc import LNDClient
# pass in the ip-address with RPC port
lnd = LNDClient("ec2-34-123-123-123.us-west-2.compute.amazonaws.com:10009", cert_filepath="tls.cert", macaroon_filepath="readonly.macaroon")
lnd.get_info()
and get this connection error:
Traceback (most recent call last):
File "./c.py", line 8, in <module>
lnd.get_info()
File "/Users/aleksandr/Development/lnd-grpc-client/lib/python3.6/site-packages/lndgrpc/errors.py", line 30, in wrapper
raise exc
File "/Users/aleksandr/Development/lnd-grpc-client/lib/python3.6/site-packages/lndgrpc/errors.py", line 19, in wrapper
return fnc(*args, **kwargs)
File "/Users/aleksandr/Development/lnd-grpc-client/lib/python3.6/site-packages/lndgrpc/client.py", line 21, in get_info
response = self._ln_stub.GetInfo(ln.GetInfoRequest())
File "/Users/aleksandr/Development/lnd-grpc-client/lib/python3.6/site-packages/grpc/_channel.py", line 549, in __call__
return _end_unary_response_blocking(state, call, False, None)
File "/Users/aleksandr/Development/lnd-grpc-client/lib/python3.6/site-packages/grpc/_channel.py", line 466, in _end_unary_response_blocking
raise _Rendezvous(state, None, None, deadline)
grpc._channel._Rendezvous: <_Rendezvous of RPC that terminated with:
status = StatusCode.UNAVAILABLE
details = "Connect Failed"
debug_error_string = "{"created":"@1553871334.297308000","description":"Failed to create subchannel","file":"src/core/ext/filters/client_channel/client_channel.cc","file_line":2267,"referenced_errors":[{"created":"@1553871334.297305000","description":"Pick Cancelled","file":"src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc","file_line":242,"referenced_errors":[{"created":"@1553871334.297284000","description":"Connect Failed","file":"src/core/ext/filters/client_channel/subchannel.cc","file_line":962,"grpc_status":14,"referenced_errors":[{"created":"@1553871334.297165000",
"description":"Peer name ec2-34-123-123-123.us-west-2.compute.amazonaws.com is not in peer certificate","file":"src/core/lib/security/security_connector/ssl/ssl_security_connector.cc","file_line":64}]}]}]}"
same error when using an IP instead of the domain name.
$ pip freeze
aiogrpc==1.6
googleapis-common-protos==1.5.9
grpcio==1.19.0
grpcio-tools==1.19.0
lndgrpc==0.1.3
protobuf==3.7.1
six==1.12.0
Is there an additional step that needs to be done for TSL other then just copying over the "tls.cert" file?
Need to update max size based on lightningnetwork/lnd#2374
Update the channel creation to include the following options
channel = self.grpc_module.secure_channel(self.ip_address, self._credentials, options=[('grpc.max_receive_message_length',1024*1024*50)])
When attempting to install with poetry, the install fails with the following output
$ poetry add lndgrpc
Using version ^0.2.0 for lndgrpc
Updating dependencies
Resolving dependencies...
Package operations: 6 installs, 0 updates, 0 removals
- Installing grpcio (1.28.1)
[EnvCommandError]
Command ['/home/harshagoli/.cache/pypoetry/virtualenvs/ssss-OIb19DJR-py3.8/bin/pip', 'install', '--no-deps', 'grpcio==1.28.1'] errored with the following return code 1, and output:
Collecting grpcio==1.28.1
Using cached https://files.pythonhosted.org/packages/cf/7a/9744998129fce7e29c5f2d8b0f545913b7383e65d8366fc0ae98d11936af/grpcio-1.28.1.tar.gz
Building wheels for collected packages: grpcio
Running setup.py bdist_wheel for grpcio: started
Running setup.py bdist_wheel for grpcio: finished with status 'error'
Complete output from command /home/harshagoli/.cache/pypoetry/virtualenvs/ssss-OIb19DJR-py3.8/bin/python3.8 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-blmpju7c/grpcio/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/pip-wheel-sf96qkno --python-tag cp38:
Found cython-generated files...
usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
or: -c --help [cmd1 cmd2 ...]
or: -c --help-commands
or: -c cmd --help
error: invalid command 'bdist_wheel'
----------------------------------------
Failed building wheel for grpcio
Running setup.py clean for grpcio
Failed to build grpcio
Installing collected packages: grpcio
Running setup.py install for grpcio: started
Running setup.py install for grpcio: finished with status 'error'
Complete output from command /home/harshagoli/.cache/pypoetry/virtualenvs/ssss-OIb19DJR-py3.8/bin/python3.8 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-blmpju7c/grpcio/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-35xfnf7n/install-record.txt --single-version-externally-managed --compile --install-headers /home/harshagoli/.cache/pypoetry/virtualenvs/ssss-OIb19DJR-py3.8/include/site/python3.8/grpcio:
Found cython-generated files...
running install
running build
running build_py
running build_project_metadata
creating python_build
creating python_build/lib.linux-x86_64-3.8
creating python_build/lib.linux-x86_64-3.8/grpc
copying src/python/grpcio/grpc/_utilities.py -> python_build/lib.linux-x86_64-3.8/grpc
copying src/python/grpcio/grpc/_server.py -> python_build/lib.linux-x86_64-3.8/grpc
copying src/python/grpcio/grpc/_channel.py -> python_build/lib.linux-x86_64-3.8/grpc
copying src/python/grpcio/grpc/_simple_stubs.py -> python_build/lib.linux-x86_64-3.8/grpc
copying src/python/grpcio/grpc/__init__.py -> python_build/lib.linux-x86_64-3.8/grpc
copying src/python/grpcio/grpc/_plugin_wrapping.py -> python_build/lib.linux-x86_64-3.8/grpc
copying src/python/grpcio/grpc/_common.py -> python_build/lib.linux-x86_64-3.8/grpc
copying src/python/grpcio/grpc/_grpcio_metadata.py -> python_build/lib.linux-x86_64-3.8/grpc
copying src/python/grpcio/grpc/_compression.py -> python_build/lib.linux-x86_64-3.8/grpc
copying src/python/grpcio/grpc/_interceptor.py -> python_build/lib.linux-x86_64-3.8/grpc
copying src/python/grpcio/grpc/_auth.py -> python_build/lib.linux-x86_64-3.8/grpc
creating python_build/lib.linux-x86_64-3.8/grpc/experimental
copying src/python/grpcio/grpc/experimental/gevent.py -> python_build/lib.linux-x86_64-3.8/grpc/experimental
copying src/python/grpcio/grpc/experimental/__init__.py -> python_build/lib.linux-x86_64-3.8/grpc/experimental
copying src/python/grpcio/grpc/experimental/session_cache.py -> python_build/lib.linux-x86_64-3.8/grpc/experimental
creating python_build/lib.linux-x86_64-3.8/grpc/beta
copying src/python/grpcio/grpc/beta/_client_adaptations.py -> python_build/lib.linux-x86_64-3.8/grpc/beta
copying src/python/grpcio/grpc/beta/implementations.py -> python_build/lib.linux-x86_64-3.8/grpc/beta
copying src/python/grpcio/grpc/beta/interfaces.py -> python_build/lib.linux-x86_64-3.8/grpc/beta
copying src/python/grpcio/grpc/beta/_metadata.py -> python_build/lib.linux-x86_64-3.8/grpc/beta
copying src/python/grpcio/grpc/beta/_server_adaptations.py -> python_build/lib.linux-x86_64-3.8/grpc/beta
copying src/python/grpcio/grpc/beta/__init__.py -> python_build/lib.linux-x86_64-3.8/grpc/beta
copying src/python/grpcio/grpc/beta/utilities.py -> python_build/lib.linux-x86_64-3.8/grpc/beta
creating python_build/lib.linux-x86_64-3.8/grpc/_cython
copying src/python/grpcio/grpc/_cython/__init__.py -> python_build/lib.linux-x86_64-3.8/grpc/_cython
creating python_build/lib.linux-x86_64-3.8/grpc/framework
copying src/python/grpcio/grpc/framework/__init__.py -> python_build/lib.linux-x86_64-3.8/grpc/framework
creating python_build/lib.linux-x86_64-3.8/grpc/experimental/aio
copying src/python/grpcio/grpc/experimental/aio/_server.py -> python_build/lib.linux-x86_64-3.8/grpc/experimental/aio
copying src/python/grpcio/grpc/experimental/aio/_channel.py -> python_build/lib.linux-x86_64-3.8/grpc/experimental/aio
copying src/python/grpcio/grpc/experimental/aio/__init__.py -> python_build/lib.linux-x86_64-3.8/grpc/experimental/aio
copying src/python/grpcio/grpc/experimental/aio/_base_server.py -> python_build/lib.linux-x86_64-3.8/grpc/experimental/aio
copying src/python/grpcio/grpc/experimental/aio/_utils.py -> python_build/lib.linux-x86_64-3.8/grpc/experimental/aio
copying src/python/grpcio/grpc/experimental/aio/_call.py -> python_build/lib.linux-x86_64-3.8/grpc/experimental/aio
copying src/python/grpcio/grpc/experimental/aio/_base_channel.py -> python_build/lib.linux-x86_64-3.8/grpc/experimental/aio
copying src/python/grpcio/grpc/experimental/aio/_base_call.py -> python_build/lib.linux-x86_64-3.8/grpc/experimental/aio
copying src/python/grpcio/grpc/experimental/aio/_interceptor.py -> python_build/lib.linux-x86_64-3.8/grpc/experimental/aio
copying src/python/grpcio/grpc/experimental/aio/_typing.py -> python_build/lib.linux-x86_64-3.8/grpc/experimental/aio
creating python_build/lib.linux-x86_64-3.8/grpc/_cython/_cygrpc
copying src/python/grpcio/grpc/_cython/_cygrpc/__init__.py -> python_build/lib.linux-x86_64-3.8/grpc/_cython/_cygrpc
creating python_build/lib.linux-x86_64-3.8/grpc/framework/foundation
copying src/python/grpcio/grpc/framework/foundation/abandonment.py -> python_build/lib.linux-x86_64-3.8/grpc/framework/foundation
copying src/python/grpcio/grpc/framework/foundation/__init__.py -> python_build/lib.linux-x86_64-3.8/grpc/framework/foundation
copying src/python/grpcio/grpc/framework/foundation/future.py -> python_build/lib.linux-x86_64-3.8/grpc/framework/foundation
copying src/python/grpcio/grpc/framework/foundation/callable_util.py -> python_build/lib.linux-x86_64-3.8/grpc/framework/foundation
copying src/python/grpcio/grpc/framework/foundation/stream.py -> python_build/lib.linux-x86_64-3.8/grpc/framework/foundation
copying src/python/grpcio/grpc/framework/foundation/stream_util.py -> python_build/lib.linux-x86_64-3.8/grpc/framework/foundation
copying src/python/grpcio/grpc/framework/foundation/logging_pool.py -> python_build/lib.linux-x86_64-3.8/grpc/framework/foundation
creating python_build/lib.linux-x86_64-3.8/grpc/framework/common
copying src/python/grpcio/grpc/framework/common/__init__.py -> python_build/lib.linux-x86_64-3.8/grpc/framework/common
copying src/python/grpcio/grpc/framework/common/cardinality.py -> python_build/lib.linux-x86_64-3.8/grpc/framework/common
copying src/python/grpcio/grpc/framework/common/style.py -> python_build/lib.linux-x86_64-3.8/grpc/framework/common
creating python_build/lib.linux-x86_64-3.8/grpc/framework/interfaces
copying src/python/grpcio/grpc/framework/interfaces/__init__.py -> python_build/lib.linux-x86_64-3.8/grpc/framework/interfaces
creating python_build/lib.linux-x86_64-3.8/grpc/framework/interfaces/base
copying src/python/grpcio/grpc/framework/interfaces/base/base.py -> python_build/lib.linux-x86_64-3.8/grpc/framework/interfaces/base
copying src/python/grpcio/grpc/framework/interfaces/base/__init__.py -> python_build/lib.linux-x86_64-3.8/grpc/framework/interfaces/base
copying src/python/grpcio/grpc/framework/interfaces/base/utilities.py -> python_build/lib.linux-x86_64-3.8/grpc/framework/interfaces/base
creating python_build/lib.linux-x86_64-3.8/grpc/framework/interfaces/face
copying src/python/grpcio/grpc/framework/interfaces/face/__init__.py -> python_build/lib.linux-x86_64-3.8/grpc/framework/interfaces/face
copying src/python/grpcio/grpc/framework/interfaces/face/face.py -> python_build/lib.linux-x86_64-3.8/grpc/framework/interfaces/face
copying src/python/grpcio/grpc/framework/interfaces/face/utilities.py -> python_build/lib.linux-x86_64-3.8/grpc/framework/interfaces/face
creating python_build/lib.linux-x86_64-3.8/grpc/_cython/_credentials
copying src/python/grpcio/grpc/_cython/_credentials/roots.pem -> python_build/lib.linux-x86_64-3.8/grpc/_cython/_credentials
running build_ext
Found cython-generated files...
building 'grpc._cython.cygrpc' extension
creating python_build/temp.linux-x86_64-3.8
creating python_build/temp.linux-x86_64-3.8/src
creating python_build/temp.linux-x86_64-3.8/src/python
creating python_build/temp.linux-x86_64-3.8/src/python/grpcio
creating python_build/temp.linux-x86_64-3.8/src/python/grpcio/grpc
creating python_build/temp.linux-x86_64-3.8/src/python/grpcio/grpc/_cython
creating python_build/temp.linux-x86_64-3.8/src/core
creating python_build/temp.linux-x86_64-3.8/src/core/ext
creating python_build/temp.linux-x86_64-3.8/src/core/ext/filters
creating python_build/temp.linux-x86_64-3.8/src/core/ext/filters/census
creating python_build/temp.linux-x86_64-3.8/src/core/ext/filters/client_channel
creating python_build/temp.linux-x86_64-3.8/src/core/ext/filters/client_channel/health
creating python_build/temp.linux-x86_64-3.8/src/core/ext/filters/client_channel/lb_policy
creating python_build/temp.linux-x86_64-3.8/src/core/ext/filters/client_channel/lb_policy/grpclb
creating python_build/temp.linux-x86_64-3.8/src/core/ext/filters/client_channel/lb_policy/pick_first
creating python_build/temp.linux-x86_64-3.8/src/core/ext/filters/client_channel/lb_policy/round_robin
creating python_build/temp.linux-x86_64-3.8/src/core/ext/filters/client_channel/lb_policy/xds
creating python_build/temp.linux-x86_64-3.8/src/core/ext/filters/client_channel/resolver
creating python_build/temp.linux-x86_64-3.8/src/core/ext/filters/client_channel/resolver/dns
creating python_build/temp.linux-x86_64-3.8/src/core/ext/filters/client_channel/resolver/dns/c_ares
creating python_build/temp.linux-x86_64-3.8/src/core/ext/filters/client_channel/resolver/dns/native
creating python_build/temp.linux-x86_64-3.8/src/core/ext/filters/client_channel/resolver/fake
creating python_build/temp.linux-x86_64-3.8/src/core/ext/filters/client_channel/resolver/sockaddr
creating python_build/temp.linux-x86_64-3.8/src/core/ext/filters/client_channel/resolver/xds
creating python_build/temp.linux-x86_64-3.8/src/core/ext/filters/client_channel/xds
creating python_build/temp.linux-x86_64-3.8/src/core/ext/filters/client_idle
creating python_build/temp.linux-x86_64-3.8/src/core/ext/filters/deadline
creating python_build/temp.linux-x86_64-3.8/src/core/ext/filters/http
creating python_build/temp.linux-x86_64-3.8/src/core/ext/filters/http/client
creating python_build/temp.linux-x86_64-3.8/src/core/ext/filters/http/message_compress
creating python_build/temp.linux-x86_64-3.8/src/core/ext/filters/http/server
creating python_build/temp.linux-x86_64-3.8/src/core/ext/filters/max_age
creating python_build/temp.linux-x86_64-3.8/src/core/ext/filters/message_size
creating python_build/temp.linux-x86_64-3.8/src/core/ext/filters/workarounds
creating python_build/temp.linux-x86_64-3.8/src/core/ext/transport
creating python_build/temp.linux-x86_64-3.8/src/core/ext/transport/chttp2
creating python_build/temp.linux-x86_64-3.8/src/core/ext/transport/chttp2/alpn
creating python_build/temp.linux-x86_64-3.8/src/core/ext/transport/chttp2/client
creating python_build/temp.linux-x86_64-3.8/src/core/ext/transport/chttp2/client/insecure
creating python_build/temp.linux-x86_64-3.8/src/core/ext/transport/chttp2/client/secure
creating python_build/temp.linux-x86_64-3.8/src/core/ext/transport/chttp2/server
creating python_build/temp.linux-x86_64-3.8/src/core/ext/transport/chttp2/server/insecure
creating python_build/temp.linux-x86_64-3.8/src/core/ext/transport/chttp2/server/secure
creating python_build/temp.linux-x86_64-3.8/src/core/ext/transport/chttp2/transport
creating python_build/temp.linux-x86_64-3.8/src/core/ext/transport/inproc
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/envoy
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/envoy/annotations
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/envoy/api
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/envoy/api/v2
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/envoy/api/v2/auth
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/envoy/api/v2/cluster
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/envoy/api/v2/core
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/envoy/api/v2/endpoint
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/envoy/api/v2/listener
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/envoy/api/v2/route
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/envoy/config
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/envoy/config/filter
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/envoy/config/filter/accesslog
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/envoy/config/filter/network
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/envoy/config/listener
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/envoy/config/listener/v2
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/envoy/service
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/envoy/service/discovery
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/envoy/service/discovery/v2
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/envoy/service/load_stats
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/envoy/service/load_stats/v2
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/envoy/type
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/envoy/type/matcher
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/envoy/type/metadata
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/envoy/type/metadata/v2
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/envoy/type/tracing
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/envoy/type/tracing/v2
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/gogoproto
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/google
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/google/api
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/google/protobuf
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/google/rpc
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/src
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/src/proto
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/src/proto/grpc
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/src/proto/grpc/gcp
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/src/proto/grpc/health
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/src/proto/grpc/health/v1
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/src/proto/grpc/lb
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/src/proto/grpc/lb/v1
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/udpa
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/udpa/annotations
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/udpa/data
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/udpa/data/orca
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/udpa/data/orca/v1
creating python_build/temp.linux-x86_64-3.8/src/core/ext/upb-generated/validate
creating python_build/temp.linux-x86_64-3.8/src/core/lib
creating python_build/temp.linux-x86_64-3.8/src/core/lib/avl
creating python_build/temp.linux-x86_64-3.8/src/core/lib/backoff
creating python_build/temp.linux-x86_64-3.8/src/core/lib/channel
creating python_build/temp.linux-x86_64-3.8/src/core/lib/compression
creating python_build/temp.linux-x86_64-3.8/src/core/lib/debug
creating python_build/temp.linux-x86_64-3.8/src/core/lib/gpr
creating python_build/temp.linux-x86_64-3.8/src/core/lib/gprpp
creating python_build/temp.linux-x86_64-3.8/src/core/lib/http
creating python_build/temp.linux-x86_64-3.8/src/core/lib/iomgr
creating python_build/temp.linux-x86_64-3.8/src/core/lib/iomgr/executor
creating python_build/temp.linux-x86_64-3.8/src/core/lib/iomgr/poller
creating python_build/temp.linux-x86_64-3.8/src/core/lib/json
creating python_build/temp.linux-x86_64-3.8/src/core/lib/profiling
creating python_build/temp.linux-x86_64-3.8/src/core/lib/security
creating python_build/temp.linux-x86_64-3.8/src/core/lib/security/context
creating python_build/temp.linux-x86_64-3.8/src/core/lib/security/credentials
creating python_build/temp.linux-x86_64-3.8/src/core/lib/security/credentials/alts
creating python_build/temp.linux-x86_64-3.8/src/core/lib/security/credentials/composite
creating python_build/temp.linux-x86_64-3.8/src/core/lib/security/credentials/fake
creating python_build/temp.linux-x86_64-3.8/src/core/lib/security/credentials/google_default
creating python_build/temp.linux-x86_64-3.8/src/core/lib/security/credentials/iam
creating python_build/temp.linux-x86_64-3.8/src/core/lib/security/credentials/jwt
creating python_build/temp.linux-x86_64-3.8/src/core/lib/security/credentials/local
creating python_build/temp.linux-x86_64-3.8/src/core/lib/security/credentials/oauth2
creating python_build/temp.linux-x86_64-3.8/src/core/lib/security/credentials/plugin
creating python_build/temp.linux-x86_64-3.8/src/core/lib/security/credentials/ssl
creating python_build/temp.linux-x86_64-3.8/src/core/lib/security/credentials/tls
creating python_build/temp.linux-x86_64-3.8/src/core/lib/security/security_connector
creating python_build/temp.linux-x86_64-3.8/src/core/lib/security/security_connector/alts
creating python_build/temp.linux-x86_64-3.8/src/core/lib/security/security_connector/fake
creating python_build/temp.linux-x86_64-3.8/src/core/lib/security/security_connector/local
creating python_build/temp.linux-x86_64-3.8/src/core/lib/security/security_connector/ssl
creating python_build/temp.linux-x86_64-3.8/src/core/lib/security/security_connector/tls
creating python_build/temp.linux-x86_64-3.8/src/core/lib/security/transport
creating python_build/temp.linux-x86_64-3.8/src/core/lib/security/util
creating python_build/temp.linux-x86_64-3.8/src/core/lib/slice
creating python_build/temp.linux-x86_64-3.8/src/core/lib/surface
creating python_build/temp.linux-x86_64-3.8/src/core/lib/transport
creating python_build/temp.linux-x86_64-3.8/src/core/lib/uri
creating python_build/temp.linux-x86_64-3.8/src/core/plugin_registry
creating python_build/temp.linux-x86_64-3.8/src/core/tsi
creating python_build/temp.linux-x86_64-3.8/src/core/tsi/alts
creating python_build/temp.linux-x86_64-3.8/src/core/tsi/alts/crypt
creating python_build/temp.linux-x86_64-3.8/src/core/tsi/alts/frame_protector
creating python_build/temp.linux-x86_64-3.8/src/core/tsi/alts/handshaker
creating python_build/temp.linux-x86_64-3.8/src/core/tsi/alts/zero_copy_frame_protector
creating python_build/temp.linux-x86_64-3.8/src/core/tsi/ssl
creating python_build/temp.linux-x86_64-3.8/src/core/tsi/ssl/session_cache
creating python_build/temp.linux-x86_64-3.8/third_party
creating python_build/temp.linux-x86_64-3.8/third_party/abseil-cpp
creating python_build/temp.linux-x86_64-3.8/third_party/abseil-cpp/absl
creating python_build/temp.linux-x86_64-3.8/third_party/abseil-cpp/absl/base
creating python_build/temp.linux-x86_64-3.8/third_party/abseil-cpp/absl/base/internal
creating python_build/temp.linux-x86_64-3.8/third_party/abseil-cpp/absl/numeric
creating python_build/temp.linux-x86_64-3.8/third_party/abseil-cpp/absl/strings
creating python_build/temp.linux-x86_64-3.8/third_party/abseil-cpp/absl/strings/internal
creating python_build/temp.linux-x86_64-3.8/third_party/abseil-cpp/absl/strings/internal/str_format
creating python_build/temp.linux-x86_64-3.8/third_party/abseil-cpp/absl/types
creating python_build/temp.linux-x86_64-3.8/third_party/address_sorting
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/crypto
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/crypto/asn1
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/crypto/base64
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/crypto/bio
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/crypto/bn_extra
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/crypto/buf
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/crypto/bytestring
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/crypto/chacha
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/crypto/cipher_extra
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/crypto/cmac
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/crypto/conf
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/crypto/curve25519
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/crypto/dh
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/crypto/digest_extra
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/crypto/dsa
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/crypto/ec_extra
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/crypto/ecdh_extra
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/crypto/ecdsa_extra
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/crypto/engine
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/crypto/err
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/crypto/evp
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/crypto/fipsmodule
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/crypto/hkdf
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/crypto/hrss
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/crypto/lhash
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/crypto/obj
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/crypto/pem
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/crypto/pkcs7
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/crypto/pkcs8
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/crypto/poly1305
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/crypto/pool
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/crypto/rand_extra
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/crypto/rc4
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/crypto/rsa_extra
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/crypto/siphash
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/crypto/stack
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/crypto/x509
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/crypto/x509v3
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/ssl
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/third_party
creating python_build/temp.linux-x86_64-3.8/third_party/boringssl-with-bazel/src/third_party/fiat
creating python_build/temp.linux-x86_64-3.8/third_party/cares
creating python_build/temp.linux-x86_64-3.8/third_party/cares/cares
creating python_build/temp.linux-x86_64-3.8/third_party/upb
creating python_build/temp.linux-x86_64-3.8/third_party/upb/upb
creating python_build/temp.linux-x86_64-3.8/third_party/zlib
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 -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DOPENSSL_NO_ASM=1 -D_WIN32_WINNT=1536 -DGPR_BACKWARDS_COMPATIBILITY_MODE=1 -DHAVE_CONFIG_H=1 -DGRPC_ENABLE_FORK_SUPPORT=1 -DPyMODINIT_FUNC=extern "C" __attribute__((visibility ("default"))) PyObject* -DGRPC_POSIX_FORK_ALLOW_PTHREAD_ATFORK=1 -Isrc/python/grpcio -Iinclude -I. -Ithird_party/abseil-cpp -Ithird_party/address_sorting/include -Ithird_party/cares -Ithird_party/cares/cares -Ithird_party/cares/config_linux -Ithird_party/boringssl-with-bazel/src/include -Ithird_party/upb -Isrc/core/ext/upb-generated -Ithird_party/zlib -I/home/harshagoli/.cache/pypoetry/virtualenvs/ssss-OIb19DJR-py3.8/include -I/usr/include/python3.8 -c src/python/grpcio/grpc/_cython/cygrpc.cpp -o python_build/temp.linux-x86_64-3.8/src/python/grpcio/grpc/_cython/cygrpc.o -std=c++11 -std=gnu99 -fvisibility=hidden -fno-wrapv -fno-exceptions -pthread
cc1plus: warning: command line option ‘-std=gnu99’ is valid for C/ObjC but not for C++
src/python/grpcio/grpc/_cython/cygrpc.cpp:910:10: fatal error: Python.h: No such file or directory
910 | #include "Python.h"
| ^~~~~~~~~~
compilation terminated.
creating tmp
creating tmp/tmpsifju9d4
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 -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/harshagoli/.cache/pypoetry/virtualenvs/ssss-OIb19DJR-py3.8/include -I/usr/include/python3.8 -c /tmp/tmpsifju9d4/a.c -o tmp/tmpsifju9d4/a.o
/tmp/tmpsifju9d4/a.c:2:10: fatal error: Python.h: No such file or directory
2 | #include <Python.h>
| ^~~~~~~~~~
compilation terminated.
Could not find <Python.h>. This could mean the following:
* You're on Ubuntu and haven't run `apt-get install python-dev`.
* You're on RHEL/Fedora and haven't run `yum install python-devel` or
`dnf install python-devel` (make sure you also have redhat-rpm-config
installed)
* You're on Mac OS X and the usual Python framework was somehow corrupted
(check your environment variables or try re-installing?)
* You're on Windows and your Python installation was somehow corrupted
(check your environment variables or try re-installing?)
Traceback (most recent call last):
File "/usr/lib/python3.8/distutils/unixccompiler.py", line 117, in _compile
self.spawn(compiler_so + cc_args + [src, '-o', obj] +
File "/tmp/pip-install-blmpju7c/grpcio/src/python/grpcio/_spawn_patch.py", line 54, in _commandfile_spawn
_classic_spawn(self, command)
File "/usr/lib/python3.8/distutils/ccompiler.py", line 910, in spawn
spawn(cmd, dry_run=self.dry_run)
File "/usr/lib/python3.8/distutils/spawn.py", line 36, in spawn
_spawn_posix(cmd, search_path, dry_run=dry_run)
File "/usr/lib/python3.8/distutils/spawn.py", line 157, in _spawn_posix
raise DistutilsExecError(
distutils.errors.DistutilsExecError: command 'x86_64-linux-gnu-gcc' failed with exit status 1
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/tmp/pip-install-blmpju7c/grpcio/src/python/grpcio/commands.py", line 262, in build_extensions
build_ext.build_ext.build_extensions(self)
File "/usr/lib/python3.8/distutils/command/build_ext.py", line 449, in build_extensions
self._build_extensions_serial()
File "/usr/lib/python3.8/distutils/command/build_ext.py", line 474, in _build_extensions_serial
self.build_extension(ext)
File "/home/harshagoli/.cache/pypoetry/virtualenvs/ssss-OIb19DJR-py3.8/lib/python3.8/site-packages/setuptools/command/build_ext.py", line 199, in build_extension
_build_ext.build_extension(self, ext)
File "/usr/lib/python3.8/distutils/command/build_ext.py", line 528, in build_extension
objects = self.compiler.compile(sources,
File "/usr/lib/python3.8/distutils/ccompiler.py", line 574, in compile
self._compile(obj, src, ext, cc_args, extra_postargs, pp_opts)
File "/tmp/pip-install-blmpju7c/grpcio/src/python/grpcio/commands.py", line 245, in new_compile
return old_compile(obj, src, ext, cc_args, extra_postargs,
File "/usr/lib/python3.8/distutils/unixccompiler.py", line 120, in _compile
raise CompileError(msg)
distutils.errors.CompileError: command 'x86_64-linux-gnu-gcc' failed with exit status 1
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-install-blmpju7c/grpcio/setup.py", line 384, in <module>
setuptools.setup(
File "/home/harshagoli/.cache/pypoetry/virtualenvs/ssss-OIb19DJR-py3.8/lib/python3.8/site-packages/setuptools/__init__.py", line 145, in setup
return distutils.core.setup(**attrs)
File "/usr/lib/python3.8/distutils/core.py", line 148, in setup
dist.run_commands()
File "/usr/lib/python3.8/distutils/dist.py", line 966, in run_commands
self.run_command(cmd)
File "/usr/lib/python3.8/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/home/harshagoli/.cache/pypoetry/virtualenvs/ssss-OIb19DJR-py3.8/lib/python3.8/site-packages/setuptools/command/install.py", line 61, in run
return orig.install.run(self)
File "/usr/lib/python3.8/distutils/command/install.py", line 589, in run
self.run_command('build')
File "/usr/lib/python3.8/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/usr/lib/python3.8/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/usr/lib/python3.8/distutils/command/build.py", line 135, in run
self.run_command(cmd_name)
File "/usr/lib/python3.8/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/usr/lib/python3.8/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/home/harshagoli/.cache/pypoetry/virtualenvs/ssss-OIb19DJR-py3.8/lib/python3.8/site-packages/setuptools/command/build_ext.py", line 78, in run
_build_ext.run(self)
File "/usr/lib/python3.8/distutils/command/build_ext.py", line 340, in run
self.build_extensions()
File "/tmp/pip-install-blmpju7c/grpcio/src/python/grpcio/commands.py", line 265, in build_extensions
support.diagnose_build_ext_error(self, error, formatted_exception)
File "/tmp/pip-install-blmpju7c/grpcio/src/python/grpcio/support.py", line 111, in diagnose_build_ext_error
diagnostic(build_ext, error)
File "/tmp/pip-install-blmpju7c/grpcio/src/python/grpcio/support.py", line 70, in diagnose_compile_error
_expect_compile(build_ext.compiler, c_check, message)
File "/tmp/pip-install-blmpju7c/grpcio/src/python/grpcio/support.py", line 62, in _expect_compile
raise commands.CommandError(
commands.CommandError: Diagnostics found a compilation environment issue:
Could not find <Python.h>. This could mean the following:
* You're on Ubuntu and haven't run `apt-get install python-dev`.
* You're on RHEL/Fedora and haven't run `yum install python-devel` or
`dnf install python-devel` (make sure you also have redhat-rpm-config
installed)
* You're on Mac OS X and the usual Python framework was somehow corrupted
(check your environment variables or try re-installing?)
* You're on Windows and your Python installation was somehow corrupted
(check your environment variables or try re-installing?)
----------------------------------------
Command "/home/harshagoli/.cache/pypoetry/virtualenvs/ssss-OIb19DJR-py3.8/bin/python3.8 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-blmpju7c/grpcio/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-35xfnf7n/install-record.txt --single-version-externally-managed --compile --install-headers /home/harshagoli/.cache/pypoetry/virtualenvs/ssss-OIb19DJR-py3.8/include/site/python3.8/grpcio" failed with error code 1 in /tmp/pip-install-blmpju7c/grpcio/
I would like to connect to grpc over tor
We can determine the channel point automatically. This will remove a step needed by the user.
I am unable to specify a description_hash
when creating an invoice. Am I doing something wrong? Or is it not yet supported by this client?
See the field on the GRPC docs:
https://api.lightning.community/#addinvoice
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.