Python Forum
looking fo documentation for module files
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
looking fo documentation for module files
#4
(Jul-27-2022, 01:48 AM)Skaperen Wrote: isn't there just a simple "copy the file(s) to this path ..." that will make that module generally available to be imported. what i have been doing was putting the modules in /usr/local/bin with the scripts that use them. but mixing them like that just seems wrong.
You can personally do what work for you,but it want to share and other to use code then should build it the standard way so users can use pip to install and also uninstall.
It's not ok to go back to old days where users had to copy files around and also manually install 3-party libraries needed.

To give a simple example.
Folders/files setup:
project\
    web_prog\
      |-- find_title.py
# find_title.py
import requests
from bs4 import BeautifulSoup

def web_title(url):
   '''Find web page title'''
   url_get = requests.get(url)
   soup = BeautifulSoup(url_get.content, 'lxml')
   print(soup.select('head > title')[0].text)

if __name__ == '__main__':
   url = 'https://www.python.org/'
   web_title(url)
Now i want to share this code so gone make a wheel(.whl) and also tar.gz
The new way is to use pyproject.toml, the old way was to use setup.py.
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"

[project]
name = "Webtitle"
version = "0.1"
description = "Title_find"
requires-python = ">=3.7"
classifiers = [
    "Programming Language :: Python :: 3",
]

dependencies = [
    "requests",
    "bs4",
    "lxml"
]

[tool.setuptools]
packages = ["web_prog"]
Now gone build it.
pip install -q build
python -m build
Now have two files:
Output:
Webtitle-0.1-py3-none-any.whl Webtitle-0.1.tar.gz
So if i want to share this can give Webtitle-0.1-py3-none-any.whl to user(this will work on Windows, Linux and Mac).
Then user can use it like this with pip.
pip install Webtitle-0.1-py3-none-any.whl
Processing g:\div_code\project_env\webtitle-0.1-py3-none-any.whl
Collecting lxml
.....  
Installing collected packages: urllib3, soupsieve, lxml, idna, charset-normalizer, certifi, requests, beautifulsoup4, bs4, Webtitle
  Running setup.py install for bs4 ... done
Successfully installed Webtitle-0.1 beautifulsoup4-4.11.1 bs4-0.0.1 certifi-2022.6.15 charset-normalizer-2.1.0 idna-3.3
lxml-4.9.1 requests-2.28.1 soupsieve-2.3.2.post1 urllib3-1.26.11
Teste that it work.
G:\div_code\
λ python
Python 3.10.5 (tags/v3.10.5:f377153, Jun  6 2022, 16:14:13) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from web_prog import find_title
>>>
>>> find_title.web_title('https://cnn.com')
CNN International - Breaking News, US News, World News and Video
>>> exit()
If user don't want code anymore can uninstall with pip.
G:\div_code
λ pip uninstall Webtitle-0.1-py3-none-any.whl
Found existing installation: Webtitle 0.1
Uninstalling Webtitle-0.1:
  Would remove:
    c:\python310\lib\site-packages\web_prog\find_title.py
    c:\python310\lib\site-packages\webtitle-0.1.dist-info\*
Proceed (Y/n)? y
  Successfully uninstalled Webtitle-0.1

On step more is to upload wheel file to PyPi if want to share it with many.
Then the install would be on PyPi pip install webtitle available for all that use pip.
Gribouillis likes this post
Reply


Messages In This Thread
RE: looking fo documentation for module files - by snippsat - Jul-27-2022, 06:22 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  finding which source files import a module Skaperen 3 2,552 Apr-22-2019, 09:28 PM
Last Post: Gribouillis

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020