I have a Python package that contains some data files (.pyi
stub files). They are listed in package_data
and the MANIFEST.in
file. When I pip install
the package on a Linux server, the files are included in the package under .../site-packages/my-package/path/to/file.pyi
, as expected.
However, when Travis installs the package as a dependency (pip install [.develop]
in a dependent package), these files are not installed; that is, .../site-packages/my-package
does not contain the .pyi
files. This means running mypy
on the dependent package fails, which breaks the build.
Is there something special about the pip install
in the virtual environment created by Travis, and what do I need to do to get it to include the package_data
files?
There’s nothing special about Travis’ virtualenv except the fact that it’s not recreated each time but restored from a prebuilt tarball.
I suspect either an old version of pip
or setuptools
that don’t understand the metadata, or something different in the installation process (e.g. setup.py develop
is very different under the hood from pip install
).
Without seeing the build, can’t say any more so please include a link to it in any further inquiries.
Here’s a link to a failing build with debug prints in the dependent crate setup.py
, which shows the poor_stubs
files are do not exist in the tgutils
package. These stubs are installed properly when I pip install tgutils
on my servers…
Thanks!
Edit: The actual link.
Running pip install tgutils
in a Bionic VM, I don’t see anything named “poor_stubs
”, either:
venv/lib/python3.6/site-packages/tgutils:
total 84
-rw-r--r-- 1 vmuser vmuser 8023 окт 6 18:53 application.py
-rw-r--r-- 1 vmuser vmuser 1168 окт 6 18:53 cache.py
-rw-r--r-- 1 vmuser vmuser 63 окт 6 18:53 __init__.py
-rw-r--r-- 1 vmuser vmuser 3903 окт 6 18:53 load_yaml.py
-rw-r--r-- 1 vmuser vmuser 3955 окт 6 18:53 make.py
-rw-r--r-- 1 vmuser vmuser 9287 окт 6 18:53 numpy.py
-rw-r--r-- 1 vmuser vmuser 12520 окт 6 18:53 pandas.py
drwxr-xr-x 2 vmuser vmuser 4096 окт 6 18:53 __pycache__
-rw-r--r-- 1 vmuser vmuser 0 окт 6 18:53 py.typed
-rw-r--r-- 1 vmuser vmuser 345 окт 6 18:53 setup_mypy.py
-rw-r--r-- 1 vmuser vmuser 1603 окт 6 18:53 tests.py
-rw-r--r-- 1 vmuser vmuser 13468 окт 6 18:53 tg_qsub.py
-rw-r--r-- 1 vmuser vmuser 64 окт 6 18:53 version.py
Perhaps these files already exist at your server, or you run some additional commands to generate them.
Hmmm, tried on another server - you are right. Strange…
So it is nothing to do with Travis - I’ll figure it out.
Thanks!