3 months ago
Posting as much info as a can
error i am recieving:``error: Failed to prepare distributions Caused by: Failed to download and build
psycopg-c==3.2.4`
Caused by: Build backend failed to build wheel through build_wheel
(exit status: 1)
[stdout]
…
error: command 'clang' failed: No such file or directory
✕ [stage-0 6/8] RUN --mount=type=cache,id=s/35642b86-2c05-4909-b637-090df8bb0998-/root/cache/uv,target=/root/.cache/uv python -m venv --copies /opt/venv && . /opt/venv/bin/activate && pip install uv==0.4.30 && uv sync --no-dev --frozen
process "/bin/bash -ol pipefail -c python -m venv --copies /opt/venv && . /opt/venv/bin/activate && pip install uv==$NIXPACKSUVVERSION && uv sync --no-dev --frozen" did not complete successfully: exit code: 2
```
0 Replies
full error VVVV
things i have tried:
include clang in
nixpacks.toml
-- this results in "error: collision between" for gcc and clangremoved
nixPkgs
entirely
-- same clang error
other info:
my uv lock is up to date
my
NIXPACKS_PYTHON_VERSION
is 3.12.4
my nixpacks.toml
file:
[phases.setup]
nixPkgs = ['...', 'ffmpeg']
initial build log
```[Region: us-west1]
==============
Using Nixpacks
==============
context: eb5accb6f2601307c25e9fa7ca834509
╔══════════════════════════════ Nixpacks v1.31.0 ══════════════════════════════╗
║ setup │ python312, postgresql_16.dev, gcc, ffmpeg ║
║──────────────────────────────────────────────────────────────────────────────║
║ install │ python -m venv --copies /opt/venv && . /opt/venv/bin/activate ║
║ │ && pip install uv==$NIXPACKSUVVERSION && uv sync --no-dev ║
║ │ --frozen ║
║──────────────────────────────────────────────────────────────────────────────║
```
pyproject.toml
dependencies:
dependencies = [
"coloredlogs==15.0.1",
"django==5.0.4",
"django-cors-headers==4.3.1",
"django-debug-toolbar==4.3.0",
"django-extensions==3.2.3",
"django-filter==24.2",
"django-storages[s3]==1.14.2",
"djangorestframework==3.15.1",
"djangorestframework-simplejwt[crypto]==5.3.1",
"gtts==2.4.0",
"gunicorn==21.2.0",
"openai==1.59.5",
"pgvector==0.2.5",
"pillow==11.1.0",
"psycopg[c]==3.2.4",
"pydub==0.25.1",
"pyperclip==1.9.0",
"pytest==7.4.0",
"pytest-django==4.7.0",
"python-dotenv==1.0.1",
"sentry-sdk[django]==1.45.0",
"setuptools==75.3.0",
"sounddevice==0.4.6",
"soundfile==0.12.1",
"stripe==8.1.0",
"tiktoken==0.8.0",
"uvicorn[standard]==0.28.0",
]
found solution! it is export CC=gcc
found here https://github.com/astral-sh/uv/issues/8036
leaving this for posterity since uv is getting increasingly popular
however i am now getting a new error django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 or psycopg module
so now i am investigating that…
from what i found on the web:https://stackoverflow.com/questions/70637715/improperlyconfigurederror-loading-psycopg2-module-s-e
and from chatgpt this seems to be a misconfigured postgres setup?
i can see the nixpack is automatically installing postgresql_[16.dev](16.dev)
but i am using psycopg[c]
which is the faster local installation that has some prerequisites:
```a C compiler,
Python development headers (e.g. the python3-dev package).
PostgreSQL client development headers (e.g. the libpq-dev package).
The pg_config program available in the PATH.```
source: https://www.psycopg.org/psycopg3/docs/basic/install.html#local-installation
I did notice the django tutorial here: https://docs.railway.com/guides/django#configure-database-static-files--dependencies (there is a typo on this page btw. search for pyscog
to find it) uses psycopg[binary]
which according to psycopg docs: https://www.psycopg.org/psycopg3/docs/basic/install.html#binary-installation the "Binary packages are produced on a best-effort basis" and the local C version is faster
so is there anything i should be changing/adding to my nixPkgs
or nixLibs
?
continuing to search for the solution. might just go with a Dockerfile but I am interested on getting it deployed to railway by "default"
Build failing and getting clang error with uv and psycopg[c]==3.2.4 in build logs
by putting [phases.setup] nixPkgs = ["python3", "postgresql_16.dev", "clang", "ffmpeg"]
i am now able to build without needing export CC=gcc
however still getinng the django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 or psycopg module
i notices a more useful part of the error:```Attempts made:
couldn't import psycopg 'c' implementation: /lib/x8664-linux-gnu/libc.so.6: version `GLIBC2.38' not found (required by /nix/store/y44iixsj2fd1pcy8ny66809z8r6zlxag-postgresql-16.4-lib/lib/libpq.so.5)
couldn't import psycopg 'binary' implementation: No module named 'psycopg_binary'
couldn't import psycopg 'python' implementation: libpq library not found```
one more update i am able to get it working just find locally with DOCKER_DEFAULT_PLATFORM=linux/amd64 nixpacks build .
. unsure why it does not work on railway
3 months ago
Didn't see this thread earlier sorry @ZimFlare did u get it fixed?
Try downgrading Nixpacks, if that doesn't work use your own Dockerfile (way more reliable imo) depending on the project you can ask GPT to generate one for you.
3 months ago
you can set nixpacks version in env varsNIXPACKS_VERSION=1.29.1
(try this version)
Thank you! I ended up using docker. I was a little too determined to get it working on nixpacks haha
3 months ago
!s
Status changed to Solved brody • 3 months ago
Status changed to Solved brody • 3 months ago