Closed prjemian closed 4 years ago
One of the problems is with the example medm files in the source code directory. Since they are only used for testing and will not be part of the installed application, move them to the tests/medm
directory.
Look in this section, https://setuptools.readthedocs.io/en/latest/setuptools.html#find-namespace-packages, at this point:
Another option is to use the “src” layout
consider this alternative to versioneer: https://pypi.org/project/setuptools-scm/
The problem is isolated to these two lines: https://github.com/BCDA-APS/adl2pydm/blob/f15ad919e27a0e3e52cc71c110464e06ec963e2d/setup.py#L37-L38
Testing with the command python ./setup.py bdist
, this setup.py
configuration fails:
setup(
name = package.__project__,
package_dir = {'': 'src'},
packages = find_namespace_packages(where='src'),
entry_points = __entry_points__,
# version = "0.1.0",
version = versioneer.get_version(),
cmdclass = versioneer.get_cmdclass(),
zip_safe = package.__zip_safe__,
python_requires = package.__python_version_required__,
)
with this error:
(bluesky-pydm) mintadmin@mint-vm:~/.../eclipse/adl2pydm$ python ./setup.py bdist
running bdist
running bdist_dumb
running build
running build_py
UPDATING build/lib/src/adl2pydm/_version.py
error: [Errno 2] No such file or directory: 'build/lib/src/adl2pydm/_version.py'
When versioneer is disabled:
version = "0.1.0",
# version = versioneer.get_version(),
# cmdclass = versioneer.get_cmdclass(),
the build command succeeds:
(bluesky-pydm) mintadmin@mint-vm:~/.../eclipse/adl2pydm$ python ./setup.py bdist
running bdist
running bdist_dumb
running build
running build_py
installing to build/bdist.linux-x86_64/dumb
running install
running install_lib
creating build/bdist.linux-x86_64/dumb
creating build/bdist.linux-x86_64/dumb/home
creating build/bdist.linux-x86_64/dumb/home/mintadmin
creating build/bdist.linux-x86_64/dumb/home/mintadmin/Apps
creating build/bdist.linux-x86_64/dumb/home/mintadmin/Apps/anaconda
creating build/bdist.linux-x86_64/dumb/home/mintadmin/Apps/anaconda/envs
creating build/bdist.linux-x86_64/dumb/home/mintadmin/Apps/anaconda/envs/bluesky-pydm
creating build/bdist.linux-x86_64/dumb/home/mintadmin/Apps/anaconda/envs/bluesky-pydm/lib
creating build/bdist.linux-x86_64/dumb/home/mintadmin/Apps/anaconda/envs/bluesky-pydm/lib/python3.7
creating build/bdist.linux-x86_64/dumb/home/mintadmin/Apps/anaconda/envs/bluesky-pydm/lib/python3.7/site-packages
creating build/bdist.linux-x86_64/dumb/home/mintadmin/Apps/anaconda/envs/bluesky-pydm/lib/python3.7/site-packages/adl2pydm
copying build/lib/adl2pydm/__init__.py -> build/bdist.linux-x86_64/dumb/home/mintadmin/Apps/anaconda/envs/bluesky-pydm/lib/python3.7/site-packages/adl2pydm
copying build/lib/adl2pydm/_version.py -> build/bdist.linux-x86_64/dumb/home/mintadmin/Apps/anaconda/envs/bluesky-pydm/lib/python3.7/site-packages/adl2pydm
copying build/lib/adl2pydm/pydm_symbols.py -> build/bdist.linux-x86_64/dumb/home/mintadmin/Apps/anaconda/envs/bluesky-pydm/lib/python3.7/site-packages/adl2pydm
copying build/lib/adl2pydm/cli.py -> build/bdist.linux-x86_64/dumb/home/mintadmin/Apps/anaconda/envs/bluesky-pydm/lib/python3.7/site-packages/adl2pydm
copying build/lib/adl2pydm/output_handler.py -> build/bdist.linux-x86_64/dumb/home/mintadmin/Apps/anaconda/envs/bluesky-pydm/lib/python3.7/site-packages/adl2pydm
copying build/lib/adl2pydm/adl_symbols.py -> build/bdist.linux-x86_64/dumb/home/mintadmin/Apps/anaconda/envs/bluesky-pydm/lib/python3.7/site-packages/adl2pydm
copying build/lib/adl2pydm/adl_parser.py -> build/bdist.linux-x86_64/dumb/home/mintadmin/Apps/anaconda/envs/bluesky-pydm/lib/python3.7/site-packages/adl2pydm
copying build/lib/adl2pydm/_requirements.py -> build/bdist.linux-x86_64/dumb/home/mintadmin/Apps/anaconda/envs/bluesky-pydm/lib/python3.7/site-packages/adl2pydm
byte-compiling build/bdist.linux-x86_64/dumb/home/mintadmin/Apps/anaconda/envs/bluesky-pydm/lib/python3.7/site-packages/adl2pydm/__init__.py to __init__.cpython-37.pyc
byte-compiling build/bdist.linux-x86_64/dumb/home/mintadmin/Apps/anaconda/envs/bluesky-pydm/lib/python3.7/site-packages/adl2pydm/_version.py to _version.cpython-37.pyc
byte-compiling build/bdist.linux-x86_64/dumb/home/mintadmin/Apps/anaconda/envs/bluesky-pydm/lib/python3.7/site-packages/adl2pydm/pydm_symbols.py to pydm_symbols.cpython-37.pyc
byte-compiling build/bdist.linux-x86_64/dumb/home/mintadmin/Apps/anaconda/envs/bluesky-pydm/lib/python3.7/site-packages/adl2pydm/cli.py to cli.cpython-37.pyc
byte-compiling build/bdist.linux-x86_64/dumb/home/mintadmin/Apps/anaconda/envs/bluesky-pydm/lib/python3.7/site-packages/adl2pydm/output_handler.py to output_handler.cpython-37.pyc
byte-compiling build/bdist.linux-x86_64/dumb/home/mintadmin/Apps/anaconda/envs/bluesky-pydm/lib/python3.7/site-packages/adl2pydm/adl_symbols.py to adl_symbols.cpython-37.pyc
byte-compiling build/bdist.linux-x86_64/dumb/home/mintadmin/Apps/anaconda/envs/bluesky-pydm/lib/python3.7/site-packages/adl2pydm/adl_parser.py to adl_parser.cpython-37.pyc
byte-compiling build/bdist.linux-x86_64/dumb/home/mintadmin/Apps/anaconda/envs/bluesky-pydm/lib/python3.7/site-packages/adl2pydm/_requirements.py to _requirements.cpython-37.pyc
running install_egg_info
running egg_info
writing src/adl2pydm.egg-info/PKG-INFO
writing dependency_links to src/adl2pydm.egg-info/dependency_links.txt
writing entry points to src/adl2pydm.egg-info/entry_points.txt
writing top-level names to src/adl2pydm.egg-info/top_level.txt
reading manifest file 'src/adl2pydm.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'src/adl2pydm.egg-info/SOURCES.txt'
Copying src/adl2pydm.egg-info to build/bdist.linux-x86_64/dumb/home/mintadmin/Apps/anaconda/envs/bluesky-pydm/lib/python3.7/site-packages/adl2pydm-0.1.0-py3.7.egg-info
running install_scripts
Installing adl2pydm script to build/bdist.linux-x86_64/dumb/home/mintadmin/Apps/anaconda/envs/bluesky-pydm/bin
Creating tar archive
removing 'build/bdist.linux-x86_64/dumb' (and everything under it)
remove & replace versioneer installation
Good. This builds now:
(bluesky-pydm) mintadmin@mint-vm:~/.../eclipse/adl2pydm$ python setup.py sdist bdist_wheel
running sdist
running egg_info
creating src/adl2pydm.egg-info
writing src/adl2pydm.egg-info/PKG-INFO
writing dependency_links to src/adl2pydm.egg-info/dependency_links.txt
writing entry points to src/adl2pydm.egg-info/entry_points.txt
writing top-level names to src/adl2pydm.egg-info/top_level.txt
writing manifest file 'src/adl2pydm.egg-info/SOURCES.txt'
reading manifest file 'src/adl2pydm.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'src/adl2pydm.egg-info/SOURCES.txt'
running check
creating adl2pydm-0.1.1b0
creating adl2pydm-0.1.1b0/src
creating adl2pydm-0.1.1b0/src/adl2pydm
creating adl2pydm-0.1.1b0/src/adl2pydm.egg-info
copying files to adl2pydm-0.1.1b0...
copying CHANGES.md -> adl2pydm-0.1.1b0
copying LICENSE.txt -> adl2pydm-0.1.1b0
copying MANIFEST.in -> adl2pydm-0.1.1b0
copying README.md -> adl2pydm-0.1.1b0
copying setup.cfg -> adl2pydm-0.1.1b0
copying setup.py -> adl2pydm-0.1.1b0
copying src/adl2pydm/__init__.py -> adl2pydm-0.1.1b0/src/adl2pydm
copying src/adl2pydm/_requirements.py -> adl2pydm-0.1.1b0/src/adl2pydm
copying src/adl2pydm/adl_parser.py -> adl2pydm-0.1.1b0/src/adl2pydm
copying src/adl2pydm/adl_symbols.py -> adl2pydm-0.1.1b0/src/adl2pydm
copying src/adl2pydm/cli.py -> adl2pydm-0.1.1b0/src/adl2pydm
copying src/adl2pydm/output_handler.py -> adl2pydm-0.1.1b0/src/adl2pydm
copying src/adl2pydm/pydm_symbols.py -> adl2pydm-0.1.1b0/src/adl2pydm
copying src/adl2pydm.egg-info/PKG-INFO -> adl2pydm-0.1.1b0/src/adl2pydm.egg-info
copying src/adl2pydm.egg-info/SOURCES.txt -> adl2pydm-0.1.1b0/src/adl2pydm.egg-info
copying src/adl2pydm.egg-info/dependency_links.txt -> adl2pydm-0.1.1b0/src/adl2pydm.egg-info
copying src/adl2pydm.egg-info/entry_points.txt -> adl2pydm-0.1.1b0/src/adl2pydm.egg-info
copying src/adl2pydm.egg-info/not-zip-safe -> adl2pydm-0.1.1b0/src/adl2pydm.egg-info
copying src/adl2pydm.egg-info/top_level.txt -> adl2pydm-0.1.1b0/src/adl2pydm.egg-info
Writing adl2pydm-0.1.1b0/setup.cfg
creating dist
Creating tar archive
removing 'adl2pydm-0.1.1b0' (and everything under it)
running bdist_wheel
running build
running build_py
creating build
creating build/lib
creating build/lib/adl2pydm
copying src/adl2pydm/__init__.py -> build/lib/adl2pydm
copying src/adl2pydm/pydm_symbols.py -> build/lib/adl2pydm
copying src/adl2pydm/cli.py -> build/lib/adl2pydm
copying src/adl2pydm/output_handler.py -> build/lib/adl2pydm
copying src/adl2pydm/adl_symbols.py -> build/lib/adl2pydm
copying src/adl2pydm/adl_parser.py -> build/lib/adl2pydm
copying src/adl2pydm/_requirements.py -> build/lib/adl2pydm
installing to build/bdist.linux-x86_64/wheel
running install
running install_lib
creating build/bdist.linux-x86_64
creating build/bdist.linux-x86_64/wheel
creating build/bdist.linux-x86_64/wheel/adl2pydm
copying build/lib/adl2pydm/__init__.py -> build/bdist.linux-x86_64/wheel/adl2pydm
copying build/lib/adl2pydm/pydm_symbols.py -> build/bdist.linux-x86_64/wheel/adl2pydm
copying build/lib/adl2pydm/cli.py -> build/bdist.linux-x86_64/wheel/adl2pydm
copying build/lib/adl2pydm/output_handler.py -> build/bdist.linux-x86_64/wheel/adl2pydm
copying build/lib/adl2pydm/adl_symbols.py -> build/bdist.linux-x86_64/wheel/adl2pydm
copying build/lib/adl2pydm/adl_parser.py -> build/bdist.linux-x86_64/wheel/adl2pydm
copying build/lib/adl2pydm/_requirements.py -> build/bdist.linux-x86_64/wheel/adl2pydm
running install_egg_info
Copying src/adl2pydm.egg-info to build/bdist.linux-x86_64/wheel/adl2pydm-0.1.1b0-py3.7.egg-info
running install_scripts
adding license file "LICENSE.txt" (matched pattern "LICEN[CS]E*")
creating build/bdist.linux-x86_64/wheel/adl2pydm-0.1.1b0.dist-info/WHEEL
creating 'dist/adl2pydm-0.1.1b0-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it
adding 'adl2pydm/__init__.py'
adding 'adl2pydm/_requirements.py'
adding 'adl2pydm/adl_parser.py'
adding 'adl2pydm/adl_symbols.py'
adding 'adl2pydm/cli.py'
adding 'adl2pydm/output_handler.py'
adding 'adl2pydm/pydm_symbols.py'
adding 'adl2pydm-0.1.1b0.dist-info/LICENSE.txt'
adding 'adl2pydm-0.1.1b0.dist-info/METADATA'
adding 'adl2pydm-0.1.1b0.dist-info/WHEEL'
adding 'adl2pydm-0.1.1b0.dist-info/entry_points.txt'
adding 'adl2pydm-0.1.1b0.dist-info/top_level.txt'
adding 'adl2pydm-0.1.1b0.dist-info/RECORD'
removing build/bdist.linux-x86_64/wheel
Also passes installation and usage tests:
(bluesky-pydm) mintadmin@mint-vm:~/.../eclipse/adl2pydm$ pip install .
Processing /home/mintadmin/Documents/eclipse/adl2pydm
Building wheels for collected packages: adl2pydm
Building wheel for adl2pydm (setup.py) ... done
Created wheel for adl2pydm: filename=adl2pydm-0.1.1b0-cp37-none-any.whl size=19397 sha256=5eb13527cd35f4aa1a1d07e75d04b5c79a94497ec98e82342f9c8ea39779065e
Stored in directory: /tmp/pip-ephem-wheel-cache-u5c6q_ck/wheels/72/e9/98/1148a96e7ee612359c15630fece486143d1da8bdc134a7af3a
Successfully built adl2pydm
Installing collected packages: adl2pydm
Successfully installed adl2pydm-0.1.1b0
(bluesky-pydm) mintadmin@mint-vm:~/.../eclipse/adl2pydm$ adl2pydm -v
0.1.1b0
(bluesky-pydm) mintadmin@mint-vm:~/.../eclipse/adl2pydm$ adl2pydm -h
usage: adl2pydm [-h] [-d DIR] [-v] adlfile
convert MEDM .adl screen file(s) to PyDM .ui format (https://github.com/BCDA-
APS/adl2pydm) v0.1.1b0
positional arguments:
adlfile MEDM '.adl' file to convert
optional arguments:
-h, --help show this help message and exit
-d DIR, --dir DIR output directory, default: same directory as input file
-v, --version show program's version number and exit
(bluesky-pydm) mintadmin@mint-vm:~/.../eclipse/adl2pydm$ pip uninstall -y adl2pydm
Uninstalling adl2pydm-0.1.1b0:
Successfully uninstalled adl2pydm-0.1.1b0
In setup.cfg
, this misconfigured line was the root case:
versionfile_build = src/adl2pydm/_version.py
The correct version of this line:
versionfile_build = adl2pydm/_version.py
fixes this problem.
These two lines in setup.py
were also important:
package_dir = {'': 'src'},
packages = find_namespace_packages("src", exclude=package.__exclude_project_dirs__),
As was moving the test files (#31).
Describe the bug With the existing
setup.py
, the source code is not installed and theadl2pydm
command line program will not run.To Reproduce
pip install .
adl2pydm -h
-- this command failsExpected behavior
adl2pydm -h
should show a help message.