I used to run python setup.py install
in a python project, it will just move the source to site-packages
, but sometimes it will mv an egg
file to site-packages
?
#!/usr/bin/env python
# encoding: utf-8
from setuptools import setup,find_packages
setup(
name = "ipin_rpc_gen_vector",
version = "0.0.2",
packages = find_packages("src"),
package_dir={"":"src"},
install_requires=[
],
)
So what is the difference behind this? When will it install source, when will it just install egg
file? How can I force install source instead of egg
file?
Installing Python Packages with Setup.py To install a package that includes a setup.py file, open a command or terminal window and: cd into the root directory where setup.py is located. Enter: python setup.py install.
When pip runs setup.py, it will install all of the dependencies listed in install_requires. For example, if your project includes matplotlib, you'll need to list it, as well as its dependency of NumPy in install_requires as shown below: setup( ... install_requires=[ '<matplotlib>', '<numpy>' ] ...)
With the latest version of setuptools, the python setup.py install command is being deprecated (see https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for more info).
You have to set the zip_safe
flag to False
if you want to avoid the zip (egg) behaviour.
You can read more about it at https://setuptools.readthedocs.io/en/latest/userguide/miscellaneous.html#setting-the-zip-safe-flag.
Also check out https://setuptools.readthedocs.io/en/latest/userguide/keywords.html#new-and-changed-setup-keywords and the *_package_data
flags (also at: https://setuptools.readthedocs.io/en/latest/references/keywords.html).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With