saleor | high performance , headless e | Ecommerce library
kandi X-RAY | saleor Summary
Support
Quality
Security
License
Reuse
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample Here
saleor Key Features
saleor Examples and Code Snippets
from saleor_gql_loader import ETLDataLoader # initialize the data_loader (optionally provide an endpoint url as second parameter) data_loader = ETLDataLoader("LcLNVgUt8mu8yKJ0Wrh3nADnTT21uv") # create a warehouse warehouse_id = etl_data_loader.create_warehouse()
# create a warehouse with specified name and email warehouse_id = etl_data_loader.create_warehouse(name="my warehouse name", email="email@example.com")
# create a year attribute year_attribute_id = etl_data_loader.create_attribute(name="year") # add the following year value to the year attribute possible_year_values = [2020, 2019, 2018, 2017] for year in possible_year_values: etl_data_loader.create_attribute_value(year_attribute_id, name=year)
python manage.py create_app etl --permission account.manage_users \ --permission account.manage_staff \ --permission app.manage_apps \ --permission discount.manage_discounts \ --permission plugins.manage_plugins \ --permission giftcard.manage_gift_card \ --permission menu.manage_menus \ --permission order.manage_orders \ --permission page.manage_pages \ --permission product.manage_products \ --permission shipping.manage_shipping \ --permission site.manage_settings \ --permission site.manage_translations \ --permission webhook.manage_webhooks \ --permission checkout.manage_checkouts
sudo apt install -y build-essential python3-cffi libcairo2 libpango-1.0-0 libpangocairo-1.0-0 libgdk-pixbuf2.0-0 libffi-dev shared-mime-info
cd shopozor-backend/saleor npm i npm run build-assets npm run build-emails
export DJANGO_SETTINGS_MODULE=saleor.settings py.test -ra
SET PATH="C:\Program Files\PostgreSQL\12\bin";...
(saleor-venv) ec2-user@ip-12-3-3-2:~/repo/fork/saleor> python3.9 -m pip install wheel
from django.db.models.signals import post_save
from django.dispatch import receiver
@receiver(post_save, sender=, dispatch_uid='_post_save')
def _post_save(sender, instance, **kwargs):
...
from saleor.saleor_package.receipt_printer.signals import order_fully_paid_signal
python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser
Trending Discussions on saleor
Trending Discussions on saleor
QUESTION
I'm trying to build a Python Plugin for Saleor using Poetry and I'm having issues installing the plugin on Saleor. I run poetry add ../social_auth
to install the plugin on saleor and it succeeds but when I try to run Saleor I get this Error:
No module named 'social_auth'
File
"/usr/lib/python3.9/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level) File "/home/ton/.cache/pypoetry/virtualenvs/saleor-nXZtbKPR-py3.9/lib/python3.9/site-packages/django/apps/config.py",
line 224, in create
import_module(entry) File "/home/ton/.cache/pypoetry/virtualenvs/saleor-nXZtbKPR-py3.9/lib/python3.9/site-packages/django/apps/registry.py",
line 91, in populate
app_config = AppConfig.create(entry) File "/home/ton/.cache/pypoetry/virtualenvs/saleor-nXZtbKPR-py3.9/lib/python3.9/site-packages/django/__init__.py",
line 24, in setup
apps.populate(settings.INSTALLED_APPS) File "/home/ton/.cache/pypoetry/virtualenvs/saleor-nXZtbKPR-py3.9/lib/python3.9/site-packages/django/utils/autoreload.py",
line 64, in wrapper
fn(*args, **kwargs) File "/home/ton/.cache/pypoetry/virtualenvs/saleor-nXZtbKPR-py3.9/lib/python3.9/site-packages/django/core/management/__init__.py",
line 375, in execute
autoreload.check_errors(django.setup)() File "/home/ton/.cache/pypoetry/virtualenvs/saleor-nXZtbKPR-py3.9/lib/python3.9/site-packages/django/utils/autoreload.py",
line 87, in raise_last_exception
raise _exception[1] File "/home/ton/.cache/pypoetry/virtualenvs/saleor-nXZtbKPR-py3.9/lib/python3.9/site-packages/django/core/management/commands/runserver.py",
line 110, in inner_run
autoreload.raise_last_exception() File "/home/ton/.cache/pypoetry/virtualenvs/saleor-nXZtbKPR-py3.9/lib/python3.9/site-packages/django/utils/autoreload.py",
line 64, in wrapper
fn(*args, **kwargs) File "/usr/lib/python3.9/threading.py", line 910, in run
self._target(*self._args, **self._kwargs) File "/usr/lib/python3.9/threading.py", line 973, in _bootstrap_inner
self.run() File "/usr/lib/python3.9/threading.py", line 930, in _bootstrap
self._bootstrap_inner()
But I checked, the module is in settings.INSTALLED_APPS
, settings.PLUGINS
and listed on pip list
...
Here's the plugin structure:
├── __init__.py
├── poetry.lock
├── pyproject.toml
└── social_auth
├── __init__.py
└── plugin.py
1 directory, 5 files
the pyproject.toml
file:
[tool.poetry]
name = "social-auth"
version = "0.1.0"
description = "Social auth for saleor"
authors = ["Wellington Zenon "]
packages = [
{ include = "plugin.py", from="social_auth"}
]
[tool.poetry.dependencies]
python = "^3.9"
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
[tool.poetry.plugins."saleor.plugins"]
"social_auth" = "social_auth.plugin:SocialLoginPlugin"
the plugin.py
file:
from copy import copy, deepcopy
from dataclasses import dataclass
from decimal import Decimal
from typing import TYPE_CHECKING, Any, Callable, Iterable, List, Optional, Tuple, Union
from django.core.handlers.wsgi import WSGIRequest
from django.http import HttpResponse
from django_countries.fields import Country
from prices import Money, TaxedMoney
from saleor.plugins.base_plugin import BasePlugin
from ..models import PluginConfiguration
if TYPE_CHECKING:
# flake8: noqa
from account.models import Address, User
from channel.models import Channel
PluginConfigurationType = List[dict]
NoneType = type(None)
class ConfigurationTypeField:
STRING = "String"
MULTILINE = "Multiline"
BOOLEAN = "Boolean"
SECRET = "Secret"
SECRET_MULTILINE = "SecretMultiline"
PASSWORD = "Password"
OUTPUT = "OUTPUT"
CHOICES = [
(STRING, "Field is a String"),
(MULTILINE, "Field is a Multiline"),
(BOOLEAN, "Field is a Boolean"),
(SECRET, "Field is a Secret"),
(PASSWORD, "Field is a Password"),
(SECRET_MULTILINE, "Field is a Secret multiline"),
(OUTPUT, "Field is a read only"),
]
@dataclass
class ExternalAccessTokens:
token: Optional[str] = None
refresh_token: Optional[str] = None
csrf_token: Optional[str] = None
user: Optional["User"] = None
class SocialLoginPlugin(BasePlugin):
"""Abstract class for storing all methods available for any plugin.
All methods take previous_value parameter.
previous_value contains a value calculated by the previous plugin in the queue.
If the plugin is first, it will use default value calculated by the manager.
"""
PLUGIN_NAME = "Social Authentication Plugin"
PLUGIN_ID = "plugin.socialauth"
PLUGIN_DESCRIPTION = "A plugin for social authentication"
CONFIG_STRUCTURE = {
"key": {
"type": ConfigurationTypeField.STRING,
"help_text": "Provide the social authentication key from the authetication provider (i.e. Facebook)",
"label": "Authentication Provider Key",
},
"secret": {
"type": ConfigurationTypeField.SECRET,
"help_text": "Provide the social authentication secret from the authetication provider (i.e. Facebook)",
"label": "Authentication Provider Secret",
},
}
CONFIGURATION_PER_CHANNEL = False
DEFAULT_CONFIGURATION = []
DEFAULT_ACTIVE = False
@classmethod
def check_plugin_id(cls, plugin_id: str) -> bool:
"""Check if given plugin_id matches with the PLUGIN_ID of this plugin."""
return cls.PLUGIN_ID == plugin_id
def __init__(
self,
*,
configuration: PluginConfigurationType,
active: bool,
channel: Optional["Channel"] = None
):
self.configuration = self.get_plugin_configuration(configuration)
self.active = active
self.channel = channel
def __str__(self):
return self.PLUGIN_NAME
# Handle authentication request.
#
# Overwrite this method if the plugin handles authentication flow.
def external_authentication_url(self, payload: dict, request: WSGIRequest) -> dict:
print(payload)
return {"payload": payload}
# Handle authentication request responsible for obtaining access tokens.
#
# Overwrite this method if the plugin handles authentication flow.
def external_obtain_access_tokens(
self, payload: dict, request: WSGIRequest
) -> ExternalAccessTokens:
pass
# Authenticate user which should be assigned to the request.
#
# Overwrite this method if the plugin handles authentication flow.
def authenticate_user(
self, request: WSGIRequest, previous_value: Any
) -> Union["User", NoneType]:
pass
# Handle logout request.
#
# Overwrite this method if the plugin handles logout flow.
external_logout: Callable[[dict], Any]
# Handle authentication refresh request.
#
# Overwrite this method if the plugin handles authentication flow and supports
# refreshing the access.
external_refresh: Callable[[dict, WSGIRequest], ExternalAccessTokens]
# Verify the provided authentication data.
#
# Overwrite this method if the plugin should validate the authentication data.
external_verify: Callable[[dict, WSGIRequest], Tuple[Union["User", NoneType], dict]]
get_client_token: Callable[[Any, Any], Any]
# Handle received http request.
#
# Overwrite this method if the plugin expects the incoming requests.
webhook: Callable[[WSGIRequest, str, Any], HttpResponse]
How can I solve this?
ANSWER
Answered 2022-Mar-08 at 02:03The problem was that pyhton couldn't find the plugin source since it wasn't in the PYTHONPATH
and I had to add it to PYTHONPATH
environment variable using this command:
PYTHONPATH=path/to/plugin
QUESTION
I am setting up the Saleor storefront following this document. However, after calling the command npm start
on Windows CMD, there were a massive number of error messages popped up.
I am new to npm
and unsure if I missed anything in the configuration.
Please let me know if you need more information. Any hints will be highly appreciated.
Screenshot of the last a few error messages:
- The beginning part of screen output:
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
Try the new cross-platform PowerShell https://aka.ms/pscore6
PS C:\my\work\saleor-dev\saleor-storefront> npm start
> saleor-site@3.0.0-a.0 start
> next dev -p 3000
ready - started server on 0.0.0.0:3000, url: http://localhost:3000
info - Loaded env from C:\my\work\saleor-dev\saleor-storefront\.env.development
info - Loaded env from C:\my\work\saleor-dev\saleor-storefront\.env
warn - React 17.0.1 or newer will be required to leverage all of the upcoming features in Next.js 11. Read more: https://nextjs.org/docs/messages/react-version
info - Using webpack 4. Reason: future.webpack5 option disabled https://nextjs.org/docs/messages/webpack5
Defining routes from exportPathMap
Warning: Reverting webpack devtool to 'inline-source-map'.
Changing the webpack devtool in development mode will cause severe performance regressions.
Read more: https://nextjs.org/docs/messages/improper-devtool
Warning: Built-in CSS support is being disabled due to custom CSS configuration being detected.
See here for more info: https://nextjs.org/docs/messages/built-in-css-disabled
info - Using external babel configuration from C:\my\work\saleor-dev\saleor-storefront\babel.config.js
error - ./src/globalStyles/scss/index.scss (./node_modules/css-loader??ref--5-1!./node_modules/sass-loader/lib/loader.js!./src/globalStyles/scss/index.scss)
Error: Node Sass does not yet support your current environment: Windows 64-bit with Unsupported runtime (93)
For more information on which environments are supported please see:
https://github.com/sass/node-sass/releases/tag/v4.14.1
Issues checking in progress...
(node:14980) [DEP0128] DeprecationWarning: Invalid 'main' field in 'C:\my\work\saleor-dev\saleor-storefront\node_modules\eslint-config-airbnb-typescript\package.json' of 'dist/eslint-config-airbnb-typescript.js'. Please either fix that or report it to the module author
(Use `node --trace-deprecation ...` to show where the warning was created)
...
And then,
- The error messages:
... a massive number of error messages omitted ...
ERROR in src/views/Search/SearchPage.tsx:114:14
prettier/prettier: Delete `␍`
112 | if (data && data.products === null) {
113 | return ;
> 114 | }
| ^
115 |
116 | if (!isOnline) {
117 | return ;
ERROR in src/views/Search/SearchPage.tsx:115:1
prettier/prettier: Delete `␍`
113 | return ;
114 | }
> 115 |
| ^
116 | if (!isOnline) {
117 | return ;
118 | }
ERROR in src/views/Search/SearchPage.tsx:116:29
prettier/prettier: Delete `␍`
114 | }
115 |
> 116 | if (!isOnline) {
| ^
117 | return ;
118 | }
119 | }}
ERROR in src/views/Search/SearchPage.tsx:117:45
prettier/prettier: Delete `␍`
115 |
116 | if (!isOnline) {
> 117 | return ;
| ^
118 | }
119 | }}
120 |
ANSWER
Answered 2022-Mar-02 at 01:13This is because you may have edited the file under Windows, which uses CR+LF as end-of-line. And you have configured prettier (or by using a template, by default) set prettier to check if end-of-line is LF (unix style end-of-line), and report incorrect formatting as an error.
More about newline: https://en.wikipedia.org/wiki/Newline
SolutionYou can either set prettier to allow the CR+LF line ending, or convert every source file to use LF line ending.
allow CR+LF line endingYou should try finding this section in eslintrc
:
'prettier/prettier': [
'error',
{
'endOfLine': '[something something]',
}
]
and change the 'endOfLine' line to this:
'endOfLine': 'auto',
or
'endOfLine': 'crlf',
Either of these should allow CR+LF to be used.
convert CR+LF to LF (recommended)You can do it manually in your editor, or you can let prettier do it. In your project folder, create .prettierrc.json
(it may already exist if you are using a template, if it does, edit the existing one inst).
Set this option in .prettierrc.json
:
{
"endOfLine": "lf"
}
Then run npx prettier --write src/
for npm or yarn prettier --write src/
for yarn.
After that, you can run npx prettier --check src/
to check if the source files are formatted correctly.
QUESTION
I am new to Docker and trying to run an open-source Django application with Docker Desktop for Windows.
Command docker container ls
shows the application is running, and the service is listening on port 0.0.0.0:8000
.
What IP address should I use on the Windows host to access this service? I appreciate your help.
docker container ls
...
1f2c70d56d48 saleor-platform_api "python manage.py ru…" 23 minutes ago Up 23 minutes 0.0.0.0:8000->8000/tcp
saleor-platform-api-1
...
ANSWER
Answered 2022-Mar-02 at 01:34As you can see here:
0.0.0.0:8000->8000
Docker is mapping the port 8000 of your container to the port 8000 of the host. Therefore, to send a request to the container, you need to make a request to localhost:8000
from the host (Windows in your case).
QUESTION
In MacOS, I am unable to access saleor storefront on localhost:3000. I do not see any errors when after following the installation steps but the storefront container is NOT binding to port 3000. These are my current checked out branches for saleor-platform: enter image description here
This is how the container setup looks like. Please note that the saleor-platform-storefront-1 does not have the port bound to 3000: enter image description here
This is how the docker-compose.yml file looks like in saleor-platform folder: enter image description here
This is how the console output looks like after successful compilation: enter image description here
Now if I update the docker-compose.yml file with the following, the URL localhost:3000 is accessible but errors out: enter image description here
I get the error below: enter image description here
ANSWER
Answered 2022-Feb-12 at 14:29Try this. Change docker-compose.yml file.
storefront:
build:
context: ./saleor-storefront
dockerfile: ./Dockerfile.dev
ports:
- 3000:3000
restart: unless-stopped
#network_mode: "host"
volumes:
- ./saleor-storefront/:/app:cached
- /app/node_modules/
command: npm start -- --host 0.0.0.0
#env_file: common.env
QUESTION
I have a local website. The website was created by a docker-compose and it is listening on a localhost port 3000.
When I try:
curl 127.0.0.1:3000
I can see the response.
What I did:
From my domain provider I edited the DNS to point to my server, then I changed nginx-ingress:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: virtual-host-ingress
namespace: ingress-basic
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/use-regex: "true"
cert-manager.io/cluster-issuer: "letsencrypt-pp"
spec:
tls:
- hosts:
- nextformulainvesting.com
secretName: ***
rules:
- host: "nextformulainvesting.com"
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: e-frontend-saleor
port:
number: 80
and I created the service:
apiVersion: v1
kind: Service
metadata:
name: e-frontend-saleor
spec:
ports:
- protocol: TCP
port: 80
targetPort: 3000
But with the service or without the service I receive the error 503 Service Temporarily Unavailable
.
How can I use nginx-ingress to point to my local TCP service?
ANSWER
Answered 2021-Nov-08 at 06:10Your service that you have created is for forwarding the traffic to deployments
As your service is running out side of Kubernetes cluster you should be using the Endpoint in this case
apiVersion: v1
kind: Endpoints
metadata:
name: my-service
subsets:
- addresses:
- IP:
ports:
- port: 3000
and you can use this Endpoint to ingress so that it will route the traffic.
Ingress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: virtual-host-ingress
namespace: ingress-basic
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/use-regex: "true"
cert-manager.io/cluster-issuer: "letsencrypt-pp"
spec:
tls:
- hosts:
- nextformulainvesting.com
secretName: ***
rules:
- host: "nextformulainvesting.com"
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: my-service
port:
number: 3000
QUESTION
I checked the translation page on saleor dashboard, but there I can only edit the product attribute name only.
I want to translate the product attributes value.
For example, products has an attribute features. This attribute will have different value for each product. So, I want to translate the value of this attribute not just the attribute name.
Is there a way to do this from dashboard?
ANSWER
Answered 2021-Sep-24 at 11:33QUESTION
I'm trying to authenticate a user with JWT using GraphQL. Once I login the user I receive the token as a JSON response and a httponly cookie storing the refresh token. (Server-side is using Saleor-core)
From the documentation of Saleor and some other blog-posts I assume that this response cookie should now be stored in the browser and whenever I need to refresh a token the cookie-refreshToken is used to authenticate my request. However, when I switch tabs to "Application" in my dev tools it's just empty.
What is the normal behaviour of the browser after receiving a cookie response? Do I need some extra code to somehow "save" that response cookie?
Did not really find anyone else having this problem so I think the mistake must be somewhere else.
UPDATE
I read somewhere the issue might be that there is no "secure" flag, which resulted from the server debug mode. I turned it off, but the cookie is still not being set.
Response Headers:
HTTP/1.1 200 OK
Connection: keep-alive
Date: Thu, 23 Sep 2021 13:32:33 GMT
Server: uvicorn
Content-Type: application/json
Access-Control-Allow-Origin: https://rewhite-86006--beta-duoa0dwg.web.app
Access-Control-Allow-Methods: POST, OPTIONS
Access-Control-Allow-Headers: Origin, Content-Type, Accept, Authorization, Authorization-Bearer
Access-Control-Allow-Credentials: true
Content-Length: 912
X-Content-Type-Options: nosniff
Referrer-Policy: same-origin
Set-Cookie: refreshToken=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE2MzI0MDM5NTQsIm93bmVyIjoic2FsZW9yIiwiZXhwIjoxNjM0OTk1OTU0LCJ0b2tlbiI6Ijd2b0VmMm1DNlZZSyIsImVtYWlsIjoiSnVsaWFuLkZpbmtlQGdtYWlsLmNvbSIsInR5cGUiOiJyZWZyZXNoIiwidXNlcl9pZCI6IlZYTmxjam8zTmc9PSIsImlzX3N0YWZmIjpmYWxzZSwiY3NyZlRva2VuIjoiWm55ek9xVG9rOU9GYXlDZXY0cjFxMUxnaktnTXRRR0VNUVJEalR1eTJDZ1IyOW1GSVBxQ1B1T1hZcTFQNk92cyJ9.Cl6PmoLkO9Hlh36tDOuyNLQCib4FVBwn32hhnmd7Q4E; expires=Sat, 23 Oct 2021 13:32:34 GMT; HttpOnly; Max-Age=2592000; Path=/; Secure
Via: 1.1 vegur
Request Headers:
POST /graphql/ HTTP/1.1
Host: rewhite-saleor-engine.herokuapp.com
Connection: keep-alive
Content-Length: 318
Pragma: no-cache
Cache-Control: no-cache
sec-ch-ua: "Google Chrome";v="93", " Not;A Brand";v="99", "Chromium";v="93"
sec-ch-ua-mobile: ?0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36
sec-ch-ua-platform: "macOS"
content-type: application/json
Accept: */*
Origin: https://rewhite-86006--beta-duoa0dwg.web.app
Sec-Fetch-Site: cross-site
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: https://rewhite-86006--beta-duoa0dwg.web.app/
Accept-Encoding: gzip, deflate, br
Accept-Language: de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7
ANSWER
Answered 2021-Sep-25 at 17:48The Domain
attribute on you cookie seems to be different from the origin of your request. You're making a cross-site request and receiving a Set Cookie response from the server (of a different domain).
Normally we run into this issue when running backend and frontend on different domains (for e.g. localhost:3000
and localhost:8080
).
Solution:
- Recent Chrome browser versions (from 2020) will only set cookies received from cross-site requests if cookie has
SameSite=None
andSecure
attributes set. WithSecure
set, a cookie will only be sent to server over HTTPS protocol (you need to implement SSL).
As of now, you don't have set either.SameSite
defaults toLax
notNone
. You need to explicitly set it.
OR
- You need implement a proxy such that you will request your webapp on
https://rewhite-86006--beta-duoa0dwg.web.app
and your webapp will proxy this to your Saleor engine domainrewhite-saleor-engine.herokuapp.com
. How you do that depends on what frameworks you're using for serving your webapp. You haven't mentioned your it in your question, but I notice you've tagged it undervue.js
, so I'll assume that you're using Vue CLI for serving a Vue app.
Its very simple to set up a proxy with Vue CLI. Just look for vue.config.js
file in your root directory. If its not there, create it and paste the code below:
module.exports = {
devServer: {
proxy: {
'^/graphql': {
target: 'https://rewhite-saleor-engine.herokuapp.com',
changeOrigin: true,
logLevel: 'debug',
},
},
},
}
Now instead of fetching the refreshToken from rewhite-saleor-engine.herokuapp.com/graphql
, you should send the request to your webapp at https://rewhite-86006--beta-duoa0dwg.web.app/graphql
, and your web app local server will forward the request to your Saleor backend on Heroku. To your browser it will appear as though the request's response came form the webapp itself, so it won't be a cross-site request anymore.
QUESTION
I've checked out the latest stable release at tag 2.11.1
. As mentioned on 2.11.1
read-me file:
- saleor-storefront/src/index.html - Main template file that contains the
- Can change title of storefront here
I have changed the storefront title as suggested above and built by npm run build
. Then deployed to a remote server.
For a brief moment, the storefront title is actually set as I desire:
However, after a moment, the title reverts back to:
What am I missing?
Only home pageWhen I navigate to any page except home page, the title is set to the one I have inside src/core/config.ts
file. But navigating to the home page, results in the above problem!
ANSWER
Answered 2021-Jul-25 at 18:52Problem is solved!
Saleor dashboard allows to change the storefront title by the Name of your store
input field of CONFIGURATION > Site Settings
:
QUESTION
I'm running the command python3.9 -m pip install pyxb
in a virtual environment and receiving these errors. I cannot figure out a meaningful message inside the logs. Am I missing something?
(saleor-venv) ec2-user@ip-12-3-3-2:~/repo/fork/saleor> python3.9 -m pip install pyxb
Collecting pyxb
Downloading PyXB-1.2.6.tar.gz (7.0 MB)
|████████████████████████████████| 7.0 MB 4.5 MB/s
Using legacy 'setup.py install' for pyxb, since package 'wheel' is not installed.
Installing collected packages: pyxb
Running setup.py install for pyxb ... error
ERROR: Command errored out with exit status -9:
command: /home/ec2-user/repo/fork/saleor/saleor-venv/bin/python3.9 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-ofpqfy5f/pyxb_5f99ab2ae6bd48aeb20205fc5a95659a/setup.py'"'"'; __file__='"'"'/tmp/pip-install-ofpqfy5f/pyxb_5f99ab2ae6bd48aeb20205fc5a95659a/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-vkevgofl/install-record.txt --single-version-externally-managed --compile --install-headers /home/ec2-user/repo/fork/saleor/saleor-venv/include/site/python3.9/pyxb
cwd: /tmp/pip-install-ofpqfy5f/pyxb_5f99ab2ae6bd48aeb20205fc5a95659a/
Complete output (357 lines):
Found bundle in /tmp/pip-install-ofpqfy5f/pyxb_5f99ab2ae6bd48aeb20205fc5a95659a/pyxb/bundles/dc
Found bundle in /tmp/pip-install-ofpqfy5f/pyxb_5f99ab2ae6bd48aeb20205fc5a95659a/pyxb/bundles/common
Found bundle in /tmp/pip-install-ofpqfy5f/pyxb_5f99ab2ae6bd48aeb20205fc5a95659a/pyxb/bundles/wssplat
Found bundle in /tmp/pip-install-ofpqfy5f/pyxb_5f99ab2ae6bd48aeb20205fc5a95659a/pyxb/bundles/saml20
running install
running build
running build_py
creating build
creating build/lib
creating build/lib/pyxb
copying pyxb/exceptions_.py -> build/lib/pyxb
copying pyxb/__init__.py -> build/lib/pyxb
creating build/lib/pyxb/namespace
copying pyxb/namespace/utility.py -> build/lib/pyxb/namespace
copying pyxb/namespace/archive.py -> build/lib/pyxb/namespace
copying pyxb/namespace/__init__.py -> build/lib/pyxb/namespace
copying pyxb/namespace/resolution.py -> build/lib/pyxb/namespace
copying pyxb/namespace/builtin.py -> build/lib/pyxb/namespace
creating build/lib/pyxb/binding
copying pyxb/binding/xml_.py -> build/lib/pyxb/binding
copying pyxb/binding/basis.py -> build/lib/pyxb/binding
copying pyxb/binding/saxer.py -> build/lib/pyxb/binding
copying pyxb/binding/content.py -> build/lib/pyxb/binding
copying pyxb/binding/facets.py -> build/lib/pyxb/binding
copying pyxb/binding/datatypes.py -> build/lib/pyxb/binding
copying pyxb/binding/generate.py -> build/lib/pyxb/binding
copying pyxb/binding/__init__.py -> build/lib/pyxb/binding
creating build/lib/pyxb/utils
copying pyxb/utils/saxutils.py -> build/lib/pyxb/utils
copying pyxb/utils/unicode.py -> build/lib/pyxb/utils
copying pyxb/utils/domutils.py -> build/lib/pyxb/utils
copying pyxb/utils/unicode_data.py -> build/lib/pyxb/utils
copying pyxb/utils/utility.py -> build/lib/pyxb/utils
copying pyxb/utils/activestate.py -> build/lib/pyxb/utils
copying pyxb/utils/six.py -> build/lib/pyxb/utils
copying pyxb/utils/templates.py -> build/lib/pyxb/utils
copying pyxb/utils/xmlre.py -> build/lib/pyxb/utils
copying pyxb/utils/__init__.py -> build/lib/pyxb/utils
copying pyxb/utils/fac.py -> build/lib/pyxb/utils
copying pyxb/utils/saxdom.py -> build/lib/pyxb/utils
creating build/lib/pyxb/xmlschema
copying pyxb/xmlschema/structures.py -> build/lib/pyxb/xmlschema
copying pyxb/xmlschema/__init__.py -> build/lib/pyxb/xmlschema
creating build/lib/pyxb/bundles
copying pyxb/bundles/__init__.py -> build/lib/pyxb/bundles
creating build/lib/pyxb/bundles/dc
copying pyxb/bundles/dc/dcterms.py -> build/lib/pyxb/bundles/dc
copying pyxb/bundles/dc/dcmitype.py -> build/lib/pyxb/bundles/dc
copying pyxb/bundles/dc/dc.py -> build/lib/pyxb/bundles/dc
copying pyxb/bundles/dc/__init__.py -> build/lib/pyxb/bundles/dc
creating build/lib/pyxb/bundles/dc/raw
copying pyxb/bundles/dc/raw/dcterms.py -> build/lib/pyxb/bundles/dc/raw
copying pyxb/bundles/dc/raw/dcmitype.py -> build/lib/pyxb/bundles/dc/raw
copying pyxb/bundles/dc/raw/dc.py -> build/lib/pyxb/bundles/dc/raw
copying pyxb/bundles/dc/raw/__init__.py -> build/lib/pyxb/bundles/dc/raw
creating build/lib/pyxb/bundles/common
copying pyxb/bundles/common/xsd_hfp.py -> build/lib/pyxb/bundles/common
copying pyxb/bundles/common/xhtml1.py -> build/lib/pyxb/bundles/common
copying pyxb/bundles/common/xlink.py -> build/lib/pyxb/bundles/common
copying pyxb/bundles/common/__init__.py -> build/lib/pyxb/bundles/common
creating build/lib/pyxb/bundles/common/raw
copying pyxb/bundles/common/raw/xsd_hfp.py -> build/lib/pyxb/bundles/common/raw
copying pyxb/bundles/common/raw/xhtml1.py -> build/lib/pyxb/bundles/common/raw
copying pyxb/bundles/common/raw/xlink.py -> build/lib/pyxb/bundles/common/raw
copying pyxb/bundles/common/raw/__init__.py -> build/lib/pyxb/bundles/common/raw
creating build/lib/pyxb/bundles/wssplat
copying pyxb/bundles/wssplat/httpbind.py -> build/lib/pyxb/bundles/wssplat
copying pyxb/bundles/wssplat/wsp.py -> build/lib/pyxb/bundles/wssplat
copying pyxb/bundles/wssplat/wsdlx.py -> build/lib/pyxb/bundles/wssplat
copying pyxb/bundles/wssplat/ds.py -> build/lib/pyxb/bundles/wssplat
copying pyxb/bundles/wssplat/xenc.py -> build/lib/pyxb/bundles/wssplat
copying pyxb/bundles/wssplat/whttp.py -> build/lib/pyxb/bundles/wssplat
copying pyxb/bundles/wssplat/wsrf_bf.py -> build/lib/pyxb/bundles/wssplat
copying pyxb/bundles/wssplat/mimebind.py -> build/lib/pyxb/bundles/wssplat
copying pyxb/bundles/wssplat/wsdli.py -> build/lib/pyxb/bundles/wssplat
copying pyxb/bundles/wssplat/wsp200607.py -> build/lib/pyxb/bundles/wssplat
copying pyxb/bundles/wssplat/soapbind12.py -> build/lib/pyxb/bundles/wssplat
copying pyxb/bundles/wssplat/wsa.py -> build/lib/pyxb/bundles/wssplat
copying pyxb/bundles/wssplat/wsse.py -> build/lib/pyxb/bundles/wssplat
copying pyxb/bundles/wssplat/wsrf_br.py -> build/lib/pyxb/bundles/wssplat
copying pyxb/bundles/wssplat/soap11.py -> build/lib/pyxb/bundles/wssplat
copying pyxb/bundles/wssplat/soapenc.py -> build/lib/pyxb/bundles/wssplat
copying pyxb/bundles/wssplat/wscoor.py -> build/lib/pyxb/bundles/wssplat
copying pyxb/bundles/wssplat/wsrm.py -> build/lib/pyxb/bundles/wssplat
copying pyxb/bundles/wssplat/__init__.py -> build/lib/pyxb/bundles/wssplat
copying pyxb/bundles/wssplat/bpws.py -> build/lib/pyxb/bundles/wssplat
copying pyxb/bundles/wssplat/wsdl20.py -> build/lib/pyxb/bundles/wssplat
copying pyxb/bundles/wssplat/sawsdl.py -> build/lib/pyxb/bundles/wssplat
copying pyxb/bundles/wssplat/wsoap.py -> build/lib/pyxb/bundles/wssplat
copying pyxb/bundles/wssplat/wstop.py -> build/lib/pyxb/bundles/wssplat
copying pyxb/bundles/wssplat/wsu.py -> build/lib/pyxb/bundles/wssplat
copying pyxb/bundles/wssplat/wsam.py -> build/lib/pyxb/bundles/wssplat
copying pyxb/bundles/wssplat/wsdl11.py -> build/lib/pyxb/bundles/wssplat
copying pyxb/bundles/wssplat/soapbind11.py -> build/lib/pyxb/bundles/wssplat
copying pyxb/bundles/wssplat/soap12.py -> build/lib/pyxb/bundles/wssplat
copying pyxb/bundles/wssplat/wsnt.py -> build/lib/pyxb/bundles/wssplat
creating build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/httpbind.py -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/wsp.py -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/wsdlx.py -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/ds.py -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/xenc.py -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/whttp.py -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/wsrf_bf.py -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/mimebind.py -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/wsdli.py -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/wsp200607.py -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/soapbind12.py -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/wsa.py -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/wsse.py -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/wsrf_br.py -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/soap11.py -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/soapenc.py -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/wscoor.py -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/wsrm.py -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/__init__.py -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/bpws.py -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/wsdl20.py -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/sawsdl.py -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/wsoap.py -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/wstop.py -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/wsu.py -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/wsam.py -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/wsdl11.py -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/soapbind11.py -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/soap12.py -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/wsnt.py -> build/lib/pyxb/bundles/wssplat/raw
creating build/lib/pyxb/bundles/saml20
copying pyxb/bundles/saml20/xacml.py -> build/lib/pyxb/bundles/saml20
copying pyxb/bundles/saml20/assertion.py -> build/lib/pyxb/bundles/saml20
copying pyxb/bundles/saml20/x500.py -> build/lib/pyxb/bundles/saml20
copying pyxb/bundles/saml20/protocol.py -> build/lib/pyxb/bundles/saml20
copying pyxb/bundles/saml20/ecp.py -> build/lib/pyxb/bundles/saml20
copying pyxb/bundles/saml20/__init__.py -> build/lib/pyxb/bundles/saml20
copying pyxb/bundles/saml20/metadata.py -> build/lib/pyxb/bundles/saml20
copying pyxb/bundles/saml20/dce.py -> build/lib/pyxb/bundles/saml20
creating build/lib/pyxb/bundles/saml20/raw
copying pyxb/bundles/saml20/raw/xacml.py -> build/lib/pyxb/bundles/saml20/raw
copying pyxb/bundles/saml20/raw/assertion.py -> build/lib/pyxb/bundles/saml20/raw
copying pyxb/bundles/saml20/raw/x500.py -> build/lib/pyxb/bundles/saml20/raw
copying pyxb/bundles/saml20/raw/protocol.py -> build/lib/pyxb/bundles/saml20/raw
copying pyxb/bundles/saml20/raw/ecp.py -> build/lib/pyxb/bundles/saml20/raw
copying pyxb/bundles/saml20/raw/__init__.py -> build/lib/pyxb/bundles/saml20/raw
copying pyxb/bundles/saml20/raw/metadata.py -> build/lib/pyxb/bundles/saml20/raw
copying pyxb/bundles/saml20/raw/dce.py -> build/lib/pyxb/bundles/saml20/raw
copying pyxb/bundles/dc/raw/dc.wxs -> build/lib/pyxb/bundles/dc/raw
copying pyxb/bundles/common/raw/xhtml1.wxs -> build/lib/pyxb/bundles/common/raw
copying pyxb/bundles/common/raw/xsd_hfp.wxs -> build/lib/pyxb/bundles/common/raw
copying pyxb/bundles/common/raw/xlink.wxs -> build/lib/pyxb/bundles/common/raw
copying pyxb/bundles/wssplat/raw/httpbind.wxs -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/ds.wxs -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/wsdli.wxs -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/soap12.wxs -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/wsoap.wxs -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/wsrf_bf.wxs -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/soapbind12.wxs -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/wsnt.wxs -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/wscoor.wxs -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/wsrm.wxs -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/wsse.wxs -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/soapenc.wxs -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/wsdl11.wxs -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/wsu.wxs -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/whttp.wxs -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/wsp.wxs -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/wsa.wxs -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/wsdl20.wxs -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/xenc.wxs -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/wsdlx.wxs -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/sawsdl.wxs -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/soapbind11.wxs -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/soap11.wxs -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/bpws.wxs -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/mimebind.wxs -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/wstop.wxs -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/wsrf_br.wxs -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/wsp200607.wxs -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/wssplat/raw/wsam.wxs -> build/lib/pyxb/bundles/wssplat/raw
copying pyxb/bundles/saml20/raw/xacml.wxs -> build/lib/pyxb/bundles/saml20/raw
copying pyxb/bundles/saml20/raw/protocol.wxs -> build/lib/pyxb/bundles/saml20/raw
copying pyxb/bundles/saml20/raw/x500.wxs -> build/lib/pyxb/bundles/saml20/raw
copying pyxb/bundles/saml20/raw/metadata.wxs -> build/lib/pyxb/bundles/saml20/raw
copying pyxb/bundles/saml20/raw/dce.wxs -> build/lib/pyxb/bundles/saml20/raw
copying pyxb/bundles/saml20/raw/ecp.wxs -> build/lib/pyxb/bundles/saml20/raw
copying pyxb/bundles/saml20/raw/assertion.wxs -> build/lib/pyxb/bundles/saml20/raw
running build_scripts
creating build/scripts-3.9
copying and adjusting scripts/pyxbgen -> build/scripts-3.9
copying and adjusting scripts/pyxbwsdl -> build/scripts-3.9
copying and adjusting scripts/pyxbdump -> build/scripts-3.9
changing mode of build/scripts-3.9/pyxbgen from 644 to 755
changing mode of build/scripts-3.9/pyxbwsdl from 644 to 755
changing mode of build/scripts-3.9/pyxbdump from 644 to 755
running install_lib
copying build/lib/pyxb/exceptions_.py -> /home/ec2-user/repo/fork/saleor/saleor-venv/lib/python3.9/site-packages/pyxb
copying build/lib/pyxb/__init__.py -> /home/ec2-user/repo/fork/saleor/saleor-venv/lib/python3.9/site-packages/pyxb
copying build/lib/pyxb/namespace/utility.py -> /home/ec2-user/repo/fork/saleor/saleor-venv/lib/python3.9/site-packages/pyxb/namespace
copying build/lib/pyxb/namespace/archive.py -> /home/ec2-user/repo/fork/saleor/saleor-venv/lib/python3.9/site-packages/pyxb/namespace
copying build/lib/pyxb/namespace/__init__.py -> /home/ec2-user/repo/fork/saleor/saleor-venv/lib/python3.9/site-packages/pyxb/namespace
copying build/lib/pyxb/namespace/resolution.py -> /home/ec2-user/repo/fork/saleor/saleor-venv/lib/python3.9/site-packages/pyxb/namespace
copying build/lib/pyxb/namespace/builtin.py -> /home/ec2-user/repo/fork/saleor/saleor-venv/lib/python3.9/site-packages/pyxb/namespace
copying build/lib/pyxb/binding/xml_.py -> /home/ec2-user/repo/fork/saleor/saleor-venv/lib/python3.9/site-packages/pyxb/binding
copying build/lib/pyxb/binding/basis.py -> /home/ec2-user/repo/fork/saleor/saleor-venv/lib/python3.9/site-packages/pyxb/binding
...
copying build/lib/pyxb/bundles/saml20/dce.py -> /home/ec2-user/repo/fork/saleor/saleor-venv/lib/python3.9/site-packages/pyxb/bundles/saml20
copying build/lib/pyxb/bundles/saml20/raw/xacml.py -> /home/ec2-user/repo/fork/saleor/saleor-venv/lib/python3.9/site-packages/pyxb/bundles/saml20/raw
copying build/lib/pyxb/bundles/saml20/raw/assertion.py -> /home/ec2-user/repo/fork/saleor/saleor-venv/lib/python3.9/site-packages/pyxb/bundles/saml20/raw
copying build/lib/pyxb/bundles/saml20/raw/x500.py -> /home/ec2-user/repo/fork/saleor/saleor-venv/lib/python3.9/site-packages/pyxb/bundles/saml20/raw
copying build/lib/pyxb/bundles/saml20/raw/protocol.py -> /home/ec2-user/repo/fork/saleor/saleor-venv/lib/python3.9/site-packages/pyxb/bundles/saml20/raw
copying build/lib/pyxb/bundles/saml20/raw/ecp.py -> /home/ec2-user/repo/fork/saleor/saleor-venv/lib/python3.9/site-packages/pyxb/bundles/saml20/raw
copying build/lib/pyxb/bundles/saml20/raw/__init__.py -> /home/ec2-user/repo/fork/saleor/saleor-venv/lib/python3.9/site-packages/pyxb/bundles/saml20/raw
copying build/lib/pyxb/bundles/saml20/raw/metadata.py -> /home/ec2-user/repo/fork/saleor/saleor-venv/lib/python3.9/site-packages/pyxb/bundles/saml20/raw
copying build/lib/pyxb/bundles/saml20/raw/dce.py -> /home/ec2-user/repo/fork/saleor/saleor-venv/lib/python3.9/site-packages/pyxb/bundles/saml20/raw
copying build/lib/pyxb/bundles/saml20/raw/xacml.wxs -> /home/ec2-user/repo/fork/saleor/saleor-venv/lib/python3.9/site-packages/pyxb/bundles/saml20/raw
copying build/lib/pyxb/bundles/saml20/raw/protocol.wxs -> /home/ec2-user/repo/fork/saleor/saleor-venv/lib/python3.9/site-packages/pyxb/bundles/saml20/raw
copying build/lib/pyxb/bundles/saml20/raw/x500.wxs -> /home/ec2-user/repo/fork/saleor/saleor-venv/lib/python3.9/site-packages/pyxb/bundles/saml20/raw
copying build/lib/pyxb/bundles/saml20/raw/metadata.wxs -> /home/ec2-user/repo/fork/saleor/saleor-venv/lib/python3.9/site-packages/pyxb/bundles/saml20/raw
copying build/lib/pyxb/bundles/saml20/raw/dce.wxs -> /home/ec2-user/repo/fork/saleor/saleor-venv/lib/python3.9/site-packages/pyxb/bundles/saml20/raw
copying build/lib/pyxb/bundles/saml20/raw/ecp.wxs -> /home/ec2-user/repo/fork/saleor/saleor-venv/lib/python3.9/site-packages/pyxb/bundles/saml20/raw
copying build/lib/pyxb/bundles/saml20/raw/assertion.wxs -> /home/ec2-user/repo/fork/saleor/saleor-venv/lib/python3.9/site-packages/pyxb/bundles/saml20/raw
byte-compiling /home/ec2-user/repo/fork/saleor/saleor-venv/lib/python3.9/site-packages/pyxb/bundles/common/raw/xhtml1.py to xhtml1.cpython-39.pyc
----------------------------------------
ERROR: Command errored out with exit status -9: /home/ec2-user/repo/fork/saleor/saleor-venv/bin/python3.9 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-ofpqfy5f/pyxb_5f99ab2ae6bd48aeb20205fc5a95659a/setup.py'"'"'; __file__='"'"'/tmp/pip-install-ofpqfy5f/pyxb_5f99ab2ae6bd48aeb20205fc5a95659a/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-vkevgofl/install-record.txt --single-version-externally-managed --compile --install-headers /home/ec2-user/repo/fork/saleor/saleor-venv/include/site/python3.9/pyxb Check the logs for full command output.
ANSWER
Answered 2021-Jul-12 at 15:17The error got resolved by running:
(saleor-venv) ec2-user@ip-12-3-3-2:~/repo/fork/saleor> python3.9 -m pip install wheel
QUESTION
Git cloning the repository on a Windows 10 machine throws this error:
error: invalid path 'saleor/graphql/core/tests/cassettes/test_get_oembed_data[http:/www.youtube.com/watch?v=dQw4w9WgXcQ-VIDEO].yaml'
fatal: unable to checkout working tree
warning: Clone succeeded, but checkout failed.
>git clone https://github.com/mirumee/saleor.git
Cloning into 'saleor'...
remote: Enumerating objects: 187180, done.
remote: Counting objects: 100% (289/289), done.
remote: Compressing objects: 100% (225/225), done.
remote: Total 187180 (delta 136), reused 131 (delta 64), pack-reused 186891
Receiving objects: 100% (187180/187180), 105.28 MiB | 234.00 KiB/s, done.
Resolving deltas: 100% (137187/137187), done.
error: invalid path 'saleor/graphql/core/tests/cassettes/test_get_oembed_data[http:/www.youtube.com/watch?v=dQw4w9WgXcQ-VIDEO].yaml'
fatal: unable to checkout working tree
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry with 'git restore --source=HEAD :/'
I tried this approach but it didn't work at the last step:
$ git init saleor
$ cd saleor
$ git remote add origin https://gitzzz.com/yyy/saleor.git -f
So far so good, but this command throws error:
$ git checkout origin/master -f
error: invalid path 'saleor/graphql/core/tests/cassettes/test_get_oembed_data[http:/www.youtube.com/watch?v=dQw4w9WgXcQ-VIDEO].yaml'
Also, this approach didn't help.
QuestionHow can I clone/checkout this repo on Windows?
SolutionThe option suggested by @bk2204 resolved the issue:
- Fork the repository
- Clone the fork on Linux
- Change the path names on Linux
- Commit and push
- Then check out the fixed fork on Windows
ANSWER
Answered 2021-Jun-07 at 21:17The problem here is that the path contains both colons and question marks and you're likely on a Windows system. Windows has made a deliberate decision not to allow these characters in path names, so there's no way to check this file out there.
You have some options:
- Use a different operating system, like macOS or Linux.
- Check the file out using the Windows Subsystem for Linux, which doesn't suffer from these limitations.
- Ask the party responsible for the repository to change the path name or do it yourself in another environment, then check out the fixed repo.
- Ask Microsoft to fix this problem.
- Don't use this repo.
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install saleor
Saleor: https://github.com/mirumee/saleor/releases/tag/2.11.1
Dashboard: https://github.com/mirumee/saleor-dashboard/releases/tag/2.11.1
Storefront: https://github.com/mirumee/saleor-storefront/releases/tag/2.11.0
Support
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesExplore Kits - Develop, implement, customize Projects, Custom Functions and Applications with kandi kits
Save this library and start creating your kit
Share this Page