Skip to content

Instantly share code, notes, and snippets.

@gjo
Created September 26, 2020 06:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gjo/ad182879bc33440a3695ec725f0de2f8 to your computer and use it in GitHub Desktop.
Save gjo/ad182879bc33440a3695ec725f0de2f8 to your computer and use it in GitHub Desktop.
reproduce pipenv:#4235
#!/bin/bash -x
mkpkg() {
name=$1
shift
deps="$*"
mkdir -p $name/$name
touch $name/$name/__init__.py
cat > $name/setup.py <<EOF
from setuptools import setup
setup()
EOF
cat > $name/setup.cfg <<EOF
[metadata]
name = $name
version = 1.0
[options]
packages = find:
install_requires = $deps
EOF
}
/bin/rm -rf env foo_app foo_lib
mkpkg foo_app foo_lib
mkpkg foo_lib
python3 -m venv env
env/bin/pip install pipenv>2018.11.26
cd foo_app
export PIPENV_VENV_IN_PROJECT=1
../env/bin/pipenv install -e ../foo_lib -e .
@gjo
Copy link
Author

gjo commented Sep 26, 2020

install_requires からlocal packageを除けば回避可能っぽい。

@gjo
Copy link
Author

gjo commented Sep 26, 2020

pypa/pipenv#4235 (comment)
によると install_requires の記述を foo_lib @ file://...PATH_TO.../foo_lib にすれば回避できるようだが、
パスを直接書くのはやりたくない。

@gjo
Copy link
Author

gjo commented Sep 26, 2020

@ 以降の記載方法はこれが足枷になっている
pypa/pip#6658

@gjo
Copy link
Author

gjo commented Sep 26, 2020

@gjo
Copy link
Author

gjo commented Sep 26, 2020

とりあえず相対パスでも通るようだ。25行目を
mkpkg foo_app foo_lib @ file://localhost/../foo_lib
にしたらOKだった。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment