Hier mal eine komplette session, mit der das klappt:
Code: Alles auswählen
deets@singlemalt:/tmp$ mkdir foobar
deets@singlemalt:/tmp$ cd foobar/
deets@singlemalt:/tmp/foobar$ submacs setup.py # Siehe unter
deets@singlemalt:/tmp/foobar$ cd ..
deets@singlemalt:/tmp$ mkdir project
deets@singlemalt:/tmp$ cd project/
deets@singlemalt:/tmp/project$ pipenv --python 3.10
Creating a virtualenv for this project...
Pipfile: /tmp/project/Pipfile
Using /home/deets/.platformio/penv/bin/python3 (3.10.6) to create virtualenv...
⠇ Creating virtual environment...created virtual environment CPython3.10.6.final.0-64 in 501ms
creator Venv(dest=/home/deets/.virtualenvs/project-snzxs1jS, clear=False, no_vcs_ignore=False, global=False, describe=CPython3Posix)
seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/deets/.local/share/virtualenv)
added seed packages: pip==22.0.2, setuptools==59.6.0, wheel==0.37.1
activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator
✔ Successfully created virtual environment!
Virtualenv location: /home/deets/.virtualenvs/project-snzxs1jS
Creating a Pipfile for this project...
deets@singlemalt:/tmp/project$ pipenv shell
Launching subshell in virtual environment...
. /home/deets/.virtualenvs/project-snzxs1jS/bin/activate
(project) deets@singlemalt:/tmp/project$ cd ../foobar/
(project) deets@singlemalt:/tmp/foobar$ pip install -e .
Obtaining file:///tmp/foobar
Preparing metadata (setup.py) ... done
Installing collected packages: foo
Running setup.py develop for foo
Successfully installed foo-1.0.0
(project) deets@singlemalt:/tmp/foobar$ cd ../project/
(project) deets@singlemalt:/tmp/project$ python
Python 3.10.6 (main, Nov 14 2022, 16:10:14) [GCC 11.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import foo
>>> foo.bar()
I'm bar in /tmp/foobar/foo/__init__.py
Das dazugehoerige setup.py
Code: Alles auswählen
from setuptools import setup, find_packages
setup(
name='foo',
version='1.0.0',
url='https://github.com/foo.git',
author='Foo Bar',
author_email='foo@bar.com',
description='Description',
packages=find_packages(),
)
Nachtrag: ich habe das Paket foo vergessen
In /tmp/foobar gibt's ein Verzeichnis foo, darin eine Datei __init__.py, und darin die Funktion bar: