Installation results in only a .dist-info folder (Pypi Packaging)

Viewed 2423

I followed the instructions on https://packaging.python.org/tutorials/packaging-projects/ and created an example package.

However, when installing, it only creates a testvansjoerd-0.0.2.dist-info folder in Python's site_packages folder. Thus giving me an error when doing an import testvansjoerd

Example package: https://test.pypi.org/project/testvansjoerd/

I installed using python -m pip -v install --index-url https://test.pypi.org/simple/ testvansjoerd==0.0.2

Log output:

Config variable 'Py_DEBUG' is unset, Python ABI tag may be incorrect
Config variable 'WITH_PYMALLOC' is unset, Python ABI tag may be incorrect
Created temporary directory: C:\Users\Sjoerd\AppData\Local\Temp\pip-ephem-wheel-cache-ey0faien
Created temporary directory: C:\Users\Sjoerd\AppData\Local\Temp\pip-req-tracker-ljdapjrw
Created requirements tracker 'C:\\Users\\Sjoerd\\AppData\\Local\\Temp\\pip-req-tracker-ljdapjrw'
Created temporary directory: C:\Users\Sjoerd\AppData\Local\Temp\pip-install-qi420ita
Looking in indexes: https://test.pypi.org/simple/
Collecting testvansjoerd==0.0.2
  1 location(s) to search for versions of testvansjoerd:
  * https://test.pypi.org/simple/testvansjoerd/
  Getting page https://test.pypi.org/simple/testvansjoerd/
  Looking up "https://test.pypi.org/simple/testvansjoerd/" in the cache
  Request header has "max_age" as 0, cache bypassed
  Starting new HTTPS connection (1): test.pypi.org:443
  https://test.pypi.org:443 "GET /simple/testvansjoerd/ HTTP/1.1" 304 0
  Analyzing links from page https://test.pypi.org/simple/testvansjoerd/
    Found link https://test-files.pythonhosted.org/packages/72/fd/ce57f8733d33ba55c3e636c43a8ff2c4b937bdd889bc55114a54ed5f5ecc/testvansjoerd-0.0.1-py3-none-any.whl#sha256=b38a90ad54a5207a8eea41f1c33fcc0543d7bf02ffbf7093fe51f128f4666b0c (from https://test.pypi.org/simple/testvansjoerd/), version: 0.0.1
    Found link https://test-files.pythonhosted.org/packages/31/83/7bd547b99d822f90cc4217206e83498e9fb065e50b3329fb6983fbcfa94f/testvansjoerd-0.0.1.tar.gz#sha256=158b30c1bcae241176a28b0811cef3eb1a182636350e5b3d16796d9da664598b (from https://test.pypi.org/simple/testvansjoerd/), version: 0.0.1
    Found link https://test-files.pythonhosted.org/packages/8f/d2/0165a096797eaa16aec2fce05e0ad4c511a6518c995fb0778099b335a24a/testvansjoerd-0.0.2-py3-none-any.whl#sha256=67edf813ff53de27d34e5f37dcb0b725a8575a0c6b123ea218e9692f30b818a3 (from https://test.pypi.org/simple/testvansjoerd/), version: 0.0.2
    Found link https://test-files.pythonhosted.org/packages/00/3a/c2c8548319995b1b8b65d9d9d8cef6beefaeb4d8c06ce30f1f61e7b12a68/testvansjoerd-0.0.2.tar.gz#sha256=bdaf1e8352bc983c42fc45372c2c842f0a9a4b9222d1e11917cef15bc6abda6c (from https://test.pypi.org/simple/testvansjoerd/), version: 0.0.2
  Using version 0.0.2 (newest of versions: 0.0.2)
  Created temporary directory: C:\Users\Sjoerd\AppData\Local\Temp\pip-unpack-yo5gc9ek
  Looking up "https://test-files.pythonhosted.org/packages/8f/d2/0165a096797eaa16aec2fce05e0ad4c511a6518c995fb0778099b335a24a/testvansjoerd-0.0.2-py3-none-any.whl" in the cache
  Current age based on date: 25
  Starting new HTTPS connection (1): test-files.pythonhosted.org:443
  https://test-files.pythonhosted.org:443 "GET /packages/8f/d2/0165a096797eaa16aec2fce05e0ad4c511a6518c995fb0778099b335a24a/testvansjoerd-0.0.2-py3-none-any.whl HTTP/1.1" 304 0
  Using cached https://test-files.pythonhosted.org/packages/8f/d2/0165a096797eaa16aec2fce05e0ad4c511a6518c995fb0778099b335a24a/testvansjoerd-0.0.2-py3-none-any.whl
  Downloading from URL https://test-files.pythonhosted.org/packages/8f/d2/0165a096797eaa16aec2fce05e0ad4c511a6518c995fb0778099b335a24a/testvansjoerd-0.0.2-py3-none-any.whl#sha256=67edf813ff53de27d34e5f37dcb0b725a8575a0c6b123ea218e9692f30b818a3 (from https://test.pypi.org/simple/testvansjoerd/)
  Added testvansjoerd==0.0.2 from https://test-files.pythonhosted.org/packages/8f/d2/0165a096797eaa16aec2fce05e0ad4c511a6518c995fb0778099b335a24a/testvansjoerd-0.0.2-py3-none-any.whl#sha256=67edf813ff53de27d34e5f37dcb0b725a8575a0c6b123ea218e9692f30b818a3 to build tracker 'C:\\Users\\Sjoerd\\AppData\\Local\\Temp\\pip-req-tracker-ljdapjrw'
  Removed testvansjoerd==0.0.2 from https://test-files.pythonhosted.org/packages/8f/d2/0165a096797eaa16aec2fce05e0ad4c511a6518c995fb0778099b335a24a/testvansjoerd-0.0.2-py3-none-any.whl#sha256=67edf813ff53de27d34e5f37dcb0b725a8575a0c6b123ea218e9692f30b818a3 from build tracker 'C:\\Users\\Sjoerd\\AppData\\Local\\Temp\\pip-req-tracker-ljdapjrw'
Installing collected packages: testvansjoerd

Successfully installed testvansjoerd-0.0.2
Cleaning up...
Removed build tracker 'C:\\Users\\Sjoerd\\AppData\\Local\\Temp\\pip-req-tracker-ljdapjrw'

Sorry for the stupid package name, initially I creating a package that had a hyphen in it, and thought that was the root cause.

At this point I'm not even sure if it's an environment issue or an issue with the package.

Windows 10, Python 3.7

2 Answers

Currently your project structure looks like:

/testvansjoerd
  setup.py
  setup.cfg
  README.md

However, in order to have a minimal package which can be imported, you'll have to create one (a folder with an empty __init__.py). The project structure will look like:

/testvansjoerd
  /testvansjoerd
    __init__.py
  setup.py
  setup.cfg
  README.md

The above file structure also mentioned in the packing documentation.

If anyone is still having this problem.

If you have project structure like this:

/project
   /src
      /package_name
         __init__.py
         main.py
         ...
   setup.py
   README.md
   ...

Just try to change packages= in your setup script:

packages=setuptools.find_packages('src/')

So it will be searching for packages in src

Related