Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pip install fitsio fails on up-to-date Microsoft Windows 10 #313

Open
jvickroy opened this issue Nov 23, 2020 · 8 comments
Open

pip install fitsio fails on up-to-date Microsoft Windows 10 #313

jvickroy opened this issue Nov 23, 2020 · 8 comments

Comments

@jvickroy
Copy link

Hello. I saw an earlier issue regarding pip install, but my issue appears to be different. I am using python 3.9. I hope someone is able to provide assistance; let me know how I can help. A copy of my console session follows:


PS C:\Users\jgv\Documents\My Projects\FITS\jv_FITS> pip install fitsio
Collecting fitsio
Downloading fitsio-1.1.3.tar.gz (5.0 MB)
|████████████████████████████████| 5.0 MB 2.2 MB/s
Collecting numpy
Using cached numpy-1.19.4-cp39-cp39-win_amd64.whl (13.0 MB)
Using legacy 'setup.py install' for fitsio, since package 'wheel' is not installed.
Installing collected packages: numpy, fitsio
Running setup.py install for fitsio ... \ ** On entry to DGEBAL parameter number 3 had an illegal value
** On entry to DGEHRD parameter number 2 had an illegal value
** On entry to DORGHR DORGQR parameter number 2 had an illegal value
** On entry to DHSEQR parameter number 4 had an illegal value
error
ERROR: Command errored out with exit status 1:
command: 'c:\users\jgv\appdata\local\programs\python\python39\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\jgv\AppData\Local\Temp\pip-install-ekovcklr\fitsio\setup.py'"'"'; file='"'"'C:\Users\jgv\AppData\Local\Temp\pip-install-ekovcklr\fitsio\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record 'C:\Users\jgv\AppData\Local\Temp\pip-record-vo0z4_eo\install-record.txt' --single-version-externally-managed --compile --install-headers 'c:\users\jgv\appdata\local\programs\python\python39\Include\fitsio'
cwd: C:\Users\jgv\AppData\Local\Temp\pip-install-ekovcklr\fitsio
Complete output (61 lines):
running install
running build
running build_py
creating build
creating build\lib.win-amd64-3.9
creating build\lib.win-amd64-3.9\fitsio
copying fitsio\fitslib.py -> build\lib.win-amd64-3.9\fitsio
copying fitsio\header.py -> build\lib.win-amd64-3.9\fitsio
copying fitsio\test.py -> build\lib.win-amd64-3.9\fitsio
copying fitsio\util.py -> build\lib.win-amd64-3.9\fitsio
copying fitsio_init_.py -> build\lib.win-amd64-3.9\fitsio
creating build\lib.win-amd64-3.9\fitsio\hdu
copying fitsio\hdu\base.py -> build\lib.win-amd64-3.9\fitsio\hdu
copying fitsio\hdu\image.py -> build\lib.win-amd64-3.9\fitsio\hdu
copying fitsio\hdu\table.py -> build\lib.win-amd64-3.9\fitsio\hdu
copying fitsio\hdu_init_.py -> build\lib.win-amd64-3.9\fitsio\hdu
running egg_info
writing fitsio.egg-info\PKG-INFO
writing dependency_links to fitsio.egg-info\dependency_links.txt
writing requirements to fitsio.egg-info\requires.txt
writing top-level names to fitsio.egg-info\top_level.txt
reading manifest file 'fitsio.egg-info\SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'fitsio.egg-info\SOURCES.txt'
copying fitsio\fitsio_pywrap.c -> build\lib.win-amd64-3.9\fitsio
creating build\lib.win-amd64-3.9\fitsio\test_images
copying fitsio\test_images\test_gzip_compressed_image.fits.fz -> build\lib.win-amd64-3.9\fitsio\test_images
running build_ext
Traceback (most recent call last):
File "", line 1, in
File "C:\Users\jgv\AppData\Local\Temp\pip-install-ekovcklr\fitsio\setup.py", line 272, in
setup(
File "c:\users\jgv\appdata\local\programs\python\python39\lib\site-packages\setuptools_init_.py", line 165, in setup
return distutils.core.setup(**attrs)
File "c:\users\jgv\appdata\local\programs\python\python39\lib\distutils\core.py", line 148, in setup
dist.run_commands()
File "c:\users\jgv\appdata\local\programs\python\python39\lib\distutils\dist.py", line 966, in run_commands
self.run_command(cmd)
File "c:\users\jgv\appdata\local\programs\python\python39\lib\distutils\dist.py", line 985, in run_command
cmd_obj.run()
File "c:\users\jgv\appdata\local\programs\python\python39\lib\site-packages\setuptools\command\install.py", line 61, in run
return orig.install.run(self)
File "c:\users\jgv\appdata\local\programs\python\python39\lib\distutils\command\install.py", line 546, in run
self.run_command('build')
File "c:\users\jgv\appdata\local\programs\python\python39\lib\distutils\cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "c:\users\jgv\appdata\local\programs\python\python39\lib\distutils\dist.py", line 985, in run_command
cmd_obj.run()
File "c:\users\jgv\appdata\local\programs\python\python39\lib\distutils\command\build.py", line 135, in run
self.run_command(cmd_name)
File "c:\users\jgv\appdata\local\programs\python\python39\lib\distutils\cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "c:\users\jgv\appdata\local\programs\python\python39\lib\distutils\dist.py", line 985, in run_command
cmd_obj.run()
File "C:\Users\jgv\AppData\Local\Temp\pip-install-ekovcklr\fitsio\setup.py", line 63, in run
import numpy
File "c:\users\jgv\appdata\local\programs\python\python39\lib\site-packages\numpy_init_.py", line 305, in
win_os_check()
File "c:\users\jgv\appdata\local\programs\python\python39\lib\site-packages\numpy_init
.py", line 302, in _win_os_check
raise RuntimeError(msg.format(file)) from None
RuntimeError: The current Numpy installation ('c:\users\jgv\appdata\local\programs\python\python39\lib\site-packages\numpy\init.py') fails to pass a sanity check due to a bug in the windows runtime. See this issue for more information: https://tinyurl.com/y3dm3h86
----------------------------------------
ERROR: Command errored out with exit status 1: 'c:\users\jgv\appdata\local\programs\python\python39\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\jgv\AppData\Local\Temp\pip-install-ekovcklr\fitsio\setup.py'"'"'; file='"'"'C:\Users\jgv\AppData\Local\Temp\pip-install-ekovcklr\fitsio\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record 'C:\Users\jgv\AppData\Local\Temp\pip-record-vo0z4_eo\install-record.txt' --single-version-externally-managed --compile --install-headers 'c:\users\jgv\appdata\local\programs\python\python39\Include\fitsio' Check the logs for full command output.
PS C:\Users\jgv\Documents\My Projects\FITS\jv_FITS>

@jvickroy
Copy link
Author

UPDATE:
I got past the above issue by reverting to an earlier numpy release (see: ) as follows:

pip uninstall numpy
pip install numpy==1.19.3

Unfortunately, retrying pip install produced the following result:


PS C:\WINDOWS\system32> pip install fitsio
Collecting fitsio
Using cached fitsio-1.1.3.tar.gz (5.0 MB)
Requirement already satisfied: numpy in c:\users\jgv\appdata\local\programs\python\python39\lib\site-packages (from fitsio) (1.19.3)
Using legacy 'setup.py install' for fitsio, since package 'wheel' is not installed.
Installing collected packages: fitsio
Running setup.py install for fitsio ... error
ERROR: Command errored out with exit status 1:
command: 'c:\users\jgv\appdata\local\programs\python\python39\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\jgv\AppData\Local\Temp\pip-install-u04483sa\fitsio\setup.py'"'"'; file='"'"'C:\Users\jgv\AppData\Local\Temp\pip-install-u04483sa\fitsio\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record 'C:\Users\jgv\AppData\Local\Temp\pip-record-nt0bvklt\install-record.txt' --single-version-externally-managed --compile --install-headers 'c:\users\jgv\appdata\local\programs\python\python39\Include\fitsio'
cwd: C:\Users\jgv\AppData\Local\Temp\pip-install-u04483sa\fitsio
Complete output (63 lines):
running install
running build
running build_py
creating build
creating build\lib.win-amd64-3.9
creating build\lib.win-amd64-3.9\fitsio
copying fitsio\fitslib.py -> build\lib.win-amd64-3.9\fitsio
copying fitsio\header.py -> build\lib.win-amd64-3.9\fitsio
copying fitsio\test.py -> build\lib.win-amd64-3.9\fitsio
copying fitsio\util.py -> build\lib.win-amd64-3.9\fitsio
copying fitsio_init_.py -> build\lib.win-amd64-3.9\fitsio
creating build\lib.win-amd64-3.9\fitsio\hdu
copying fitsio\hdu\base.py -> build\lib.win-amd64-3.9\fitsio\hdu
copying fitsio\hdu\image.py -> build\lib.win-amd64-3.9\fitsio\hdu
copying fitsio\hdu\table.py -> build\lib.win-amd64-3.9\fitsio\hdu
copying fitsio\hdu_init_.py -> build\lib.win-amd64-3.9\fitsio\hdu
running egg_info
writing fitsio.egg-info\PKG-INFO
writing dependency_links to fitsio.egg-info\dependency_links.txt
writing requirements to fitsio.egg-info\requires.txt
writing top-level names to fitsio.egg-info\top_level.txt
reading manifest file 'fitsio.egg-info\SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'fitsio.egg-info\SOURCES.txt'
copying fitsio\fitsio_pywrap.c -> build\lib.win-amd64-3.9\fitsio
creating build\lib.win-amd64-3.9\fitsio\test_images
copying fitsio\test_images\test_gzip_compressed_image.fits.fz -> build\lib.win-amd64-3.9\fitsio\test_images
running build_ext
Traceback (most recent call last):
File "", line 1, in
File "C:\Users\jgv\AppData\Local\Temp\pip-install-u04483sa\fitsio\setup.py", line 272, in
setup(
File "c:\users\jgv\appdata\local\programs\python\python39\lib\site-packages\setuptools_init_.py", line 165, in setup
return distutils.core.setup(**attrs)
File "c:\users\jgv\appdata\local\programs\python\python39\lib\distutils\core.py", line 148, in setup
dist.run_commands()
File "c:\users\jgv\appdata\local\programs\python\python39\lib\distutils\dist.py", line 966, in run_commands
self.run_command(cmd)
File "c:\users\jgv\appdata\local\programs\python\python39\lib\distutils\dist.py", line 985, in run_command
cmd_obj.run()
File "c:\users\jgv\appdata\local\programs\python\python39\lib\site-packages\setuptools\command\install.py", line 61, in run
return orig.install.run(self)
File "c:\users\jgv\appdata\local\programs\python\python39\lib\distutils\command\install.py", line 546, in run
self.run_command('build')
File "c:\users\jgv\appdata\local\programs\python\python39\lib\distutils\cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "c:\users\jgv\appdata\local\programs\python\python39\lib\distutils\dist.py", line 985, in run_command
cmd_obj.run()
File "c:\users\jgv\appdata\local\programs\python\python39\lib\distutils\command\build.py", line 135, in run
self.run_command(cmd_name)
File "c:\users\jgv\appdata\local\programs\python\python39\lib\distutils\cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "c:\users\jgv\appdata\local\programs\python\python39\lib\distutils\dist.py", line 985, in run_command
cmd_obj.run()
File "C:\Users\jgv\AppData\Local\Temp\pip-install-u04483sa\fitsio\setup.py", line 72, in run
build_ext.run(self)
File "c:\users\jgv\appdata\local\programs\python\python39\lib\site-packages\setuptools\command\build_ext.py", line 87, in run
_build_ext.run(self)
File "c:\users\jgv\appdata\local\programs\python\python39\lib\distutils\command\build_ext.py", line 340, in run
self.build_extensions()
File "C:\Users\jgv\AppData\Local\Temp\pip-install-u04483sa\fitsio\setup.py", line 84, in build_extensions
CCold = self.compiler.compiler
AttributeError: 'MSVCCompiler' object has no attribute 'compiler'
----------------------------------------
ERROR: Command errored out with exit status 1: 'c:\users\jgv\appdata\local\programs\python\python39\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\jgv\AppData\Local\Temp\pip-install-u04483sa\fitsio\setup.py'"'"'; file='"'"'C:\Users\jgv\AppData\Local\Temp\pip-install-u04483sa\fitsio\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record 'C:\Users\jgv\AppData\Local\Temp\pip-record-nt0bvklt\install-record.txt' --single-version-externally-managed --compile --install-headers 'c:\users\jgv\appdata\local\programs\python\python39\Include\fitsio' Check the logs for full command output.
PS C:\WINDOWS\system32>

@jvickroy
Copy link
Author

Regarding:

Is AttributeError: 'MSVCCompiler' object has no attribute 'compiler' when trying to install a numpy extension (https://stackoverflow.com/questions/45702457/attributeerror-msvccompiler-object-has-no-attribute-compiler-when-trying-to) relevant?

@esheldon
Copy link
Owner

None of the core developers uses windows, so we haven't been able to dig into any of the windows related issues. A contribution from a windows expert would be highly valued.

@jvickroy
Copy link
Author

Hello Erin. Thanks for your quick response.

Regarding:

AttributeError: 'MSVCCompiler' object has no attribute 'compiler' when trying to install a numpy extension (https://stackoverflow.com/questions/45702457/attributeerror-msvccompiler-object-has-no-attribute-compiler-when-trying-to) contains the following information:
_According to this link, "compiler is an attribute on [GNU/]Linux but not Windows." Thus, it's highly likely that something is wrong with the setup scripts whenever you run into this problem. Most probably, the package author didn't consider Windows installation routines and needs to be notified.

If you want to fix this yourself, I recommend looking for any line of your setup.py file containing the "self.compiler.compiler[0]" part and commenting it out._
Unfortunately, I'm neither a MS Windows nor Python expert, but I did find a self.compiler.compiler statement in the fitsio setup.py file in the git repository. Is this at all helpful to you?

@jdavies-st
Copy link

Yeah, the setup.py here assumes gcc or gcc-like compilers. astropy.io.fits also compiles some code from CFITSIO for compression into a C extension for python and looking at how they build the extension for windows might help you sort it out for this package.

https://github.com/astropy/astropy/blob/df3e5bb36120797065c8e326309663ab1a3df788/astropy/io/fits/setup_package.py#L29-L40

@jdavies-st
Copy link

Also, you may want to make this package pep517-compliant so that builds (compiling the C source code) happen in an isolated, defined environment. That means adding a pyproject.toml here, and further using oldest-supported-numpy in there as a build dependency instead of numpy, for maximum compatibility.

This would make installations more reliable as the package maintainers can then specify what build dependencies are, not relying on whatever happens to be installed on the user's system, which is what happens under a "legacy" build. After all, building the package and using the package may have different dependency requirements.

@PierceAF
Copy link

I'm having the same issue. Has anyone been able to figure it out?

@mickolaua
Copy link

mickolaua commented Dec 1, 2021

Hi everyone! Maybe this could be useful f you need to just install fitsio and it does not matter with which compilers:

  1. install conda (e.g. miniconda3)
  2. install msys2 packages (compilers, m2-patch, etc)
  3. install libpython
  4. download fitsio repo and run:
    python setup.py install

Here is the test output i had after installation:

Click to expand! `testNonStandardKeyValue (fitsio.test.TestWarnings) ... ok

Ran 1 test in 0.044s

OK
testAsciiTableWriteRead (fitsio.test.TestReadWrite)
Test write and read for an ascii table ... FAIL
testBadHeaderWriteRaises (fitsio.test.TestReadWrite)
Test that an invalid header raises. ... ok
testBlankKeyComments (fitsio.test.TestReadWrite)
test a few different comments ... ok
testBlankKeyCommentsFromCards (fitsio.test.TestReadWrite)
test a few different comments ... ok
testBz2Read (fitsio.test.TestReadWrite)
Write a normal .fits file, run bzip2 on it, then read the bz2 ... ok
testChecksum (fitsio.test.TestReadWrite)
test that checksumming works ... ok
testCompressPreserveZeros (fitsio.test.TestReadWrite)
Test writing and reading gzip compressed image ... ok
testCorruptContinue (fitsio.test.TestReadWrite)
test with corrupt continue, just make sure it doesn't crash ... ok
testExtVer (fitsio.test.TestReadWrite)
Test using extname and extver, all combinations I can think of ... ok
testGZIPTileCompressedReadLosslessAstropy (fitsio.test.TestReadWrite)
Test reading an image gzip compressed by astropy (fixed by cfitsio 3.49) ... ok
testGZIPTileCompressedWriteRead (fitsio.test.TestReadWrite)
Test writing and reading gzip compressed image ... ok
testGZIPTileCompressedWriteReadLossless (fitsio.test.TestReadWrite)
Test writing and reading gzip compressed image ... ok
testGZWriteRead (fitsio.test.TestReadWrite)
Test a basic table write, data and a header, then reading back in to ... ok
testHCompressTileCompressedWriteRead (fitsio.test.TestReadWrite)
Test writing and reading gzip compressed image ... ok
testHeaderCommentPreserved (fitsio.test.TestReadWrite)
Test that the comment is preserved after resetting the value ... ok
testHeaderFromCards (fitsio.test.TestReadWrite)
test generating a header from cards, writing it out and getting ... ok
testHeaderJunk (fitsio.test.TestReadWrite)
test lenient treatment of garbage written by IDL mwrfits ... ok
testHeaderJunkNonAscii (fitsio.test.TestReadWrite) ... ok
testHeaderTemplate (fitsio.test.TestReadWrite)
test adding bunch of cards from a split template ... ok
testHeaderWriteRead (fitsio.test.TestReadWrite)
Test a basic header write and read ... ok
testImageSlice (fitsio.test.TestReadWrite)
test reading an image slice ... ok
testImageSliceStriding (fitsio.test.TestReadWrite)
test reading an image slice ... ok
testImageWriteEmpty (fitsio.test.TestReadWrite)
Test a basic image write, with no data and just a header, then reading ... ok
testImageWriteRead (fitsio.test.TestReadWrite)
Test a basic image write, data and a header, then reading back in to ... ok
testImageWriteReadFromDims (fitsio.test.TestReadWrite)
Test creating an image from dims and writing in place ... ok
testImageWriteReadFromDimsChunks (fitsio.test.TestReadWrite)
Test creating an image and reading/writing chunks ... ok
testLowerUpper (fitsio.test.TestReadWrite)
test forcing names to upper and lower ... ok
testMoveByName (fitsio.test.TestReadWrite)
test moving hdus by name ... ok
testPLIOTileCompressedWriteRead (fitsio.test.TestReadWrite)
Test writing and reading gzip compressed image ... ok
testReadCommentHistory (fitsio.test.TestReadWrite) ... ok
testReadFlipAxisSlice (fitsio.test.TestReadWrite)
Test reading a slice when the slice's start is less than the slice's stop. ... ok
testReadHeaderCase (fitsio.test.TestReadWrite)
Test read_header with and without case sensitivity ... ok
testReadIgnoreScaling (fitsio.test.TestReadWrite)
Test the flag to ignore scaling when reading an HDU. ... ok
testReadRaw (fitsio.test.TestReadWrite)
testing reading the file as raw bytes ... ok
testRiceTileCompressedWriteRead (fitsio.test.TestReadWrite)
Test writing and reading a rice compressed image ... ok
testSlice (fitsio.test.TestReadWrite)
Test reading by slice ... ok
testTableAppend (fitsio.test.TestReadWrite)
Test creating a table and appending new rows. ... ok
testTableBitcolAppend (fitsio.test.TestReadWrite)
Test creating a table with bitcol support and appending new rows. ... ok
testTableBitcolInsert (fitsio.test.TestReadWrite)
Test creating a table with bitcol support and appending new rows. ... ok
testTableBitcolReadWrite (fitsio.test.TestReadWrite)
Test basic write/read with bitcols ... ok
testTableColumnIndexScalar (fitsio.test.TestReadWrite)
Test a basic table write, data and a header, then reading back in to ... ok
testTableDeleteRowRange (fitsio.test.TestReadWrite)
Test deleting a range of rows using the delete_rows method ... ok
testTableDeleteRows (fitsio.test.TestReadWrite)
Test deleting specific set of rows using the delete_rows method ... ok
testTableFormatColumnSubset (fitsio.test.TestReadWrite)
Test a basic table write, data and a header, then reading back in to ... ok
testTableInsertColumn (fitsio.test.TestReadWrite)
Insert a new column ... ok
testTableIter (fitsio.test.TestReadWrite)
Test iterating over rows of a table ... ok
testTableReadEmptyRows (fitsio.test.TestReadWrite)
test reading empty list of rows from an table. ... ok
testTableResize (fitsio.test.TestReadWrite)
Use the resize method to change the size of a table ... ok
testTableSubsets (fitsio.test.TestReadWrite)
testing reading subsets ... ok
testTableWriteBadString (fitsio.test.TestReadWrite)
Test a basic table write, data and a header, then reading back in to ... ok
testTableWriteDictOfArrays (fitsio.test.TestReadWrite)
This version creating the table from a dict of arrays ... ok
testTableWriteDictOfArraysScratch (fitsio.test.TestReadWrite)
This version creating the table from a dict of arrays, creating ... ok
testTableWriteDictOfArraysVar (fitsio.test.TestReadWrite)
This version creating the table from a dict of arrays, variable ... ok
testTableWriteListOfArrays (fitsio.test.TestReadWrite)
Test a basic table write, data and a header, then reading back in to ... ok
testTableWriteListOfArraysScratch (fitsio.test.TestReadWrite)
This version creating the table from the names and list, creating ... ok
testTableWriteListOfArraysVar (fitsio.test.TestReadWrite)
This version creating the table from the names and list, variable ... ok
testTableWriteRead (fitsio.test.TestReadWrite)
Test a basic table write, data and a header, then reading back in to ... ok
testTrimStrings (fitsio.test.TestReadWrite)
test mode where we strim strings on read ... ok
testVariableLengthColumns (fitsio.test.TestReadWrite)
Write and read variable length columns ... ok
testWriteKeyDict (fitsio.test.TestReadWrite)
test that write_key works using a standard key dict ... ok

======================================================================
FAIL: testAsciiTableWriteRead (fitsio.test.TestReadWrite)
Test write and read for an ascii table

Traceback (most recent call last):
File "D:\Programs\Miniconda3\lib\site-packages\fitsio-1.1.5-py3.8-win-amd64.egg\fitsio\test.py", line 2071, in testAsciiTableWriteRead
self.compare_array_tol(self.ascii_data[f], d, 2.15e-16, "table field read '%s'" % f)
File "D:\Programs\Miniconda3\lib\site-packages\fitsio-1.1.5-py3.8-win-amd64.egg\fitsio\test.py", line 2963, in compare_array_tol
self.assertEqual(w.size,0,
AssertionError: 1 != 0 : testing array 'table field read 'f4scalar'' dim 0 are equal within tolerance 2.150000e-16, found max diff 2.887317e-16


Ran 60 tests in 5.313s

FAILED (failures=1)
testAddDeleteAndUpdateRecords (fitsio.test.TestFITSHDR) ... ok


Ran 1 test in 0.001s

OK`

Caution: it _maybe_ won't work with python >= 3.8, take it into account.

It is interesting: could I (or someone else), for example, make such extensions for different python versions and upload it there, so it can be used as precompiled binary when a person downloads fitsio with pip as an option for Windows platform? It would be a great contribution to the package cross-platform support.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants