could not find library 'radial' in directories ['lib']…LINK : fatal error LNK1181: cannot open input file 'radial.lib'

元气小坏坏 提交于 2019-12-24 21:01:16

问题


I have some codes in Python 3.7 mixed with Fortran FOR . I use Visual Studio 2019 and Intel Parallel Studio 2019 integrated.so when I run in Intel CMD python setup.py install I got this error :

could not find library 'radial' in directories ['lib']...
LINK : fatal error LNK1181: cannot open input file 'radial.lib'
error: Command "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.21.27702\bin\HostX86\x64\link.exe...
… failed with exit status 1181

Any help would be appreciated.

setup.py:

#! /usr/bin/env python
# Last Change: Sun Dec 19 11:00 AM 2010 J

# Copyright (C) 2008 Alexander Vinokurov <alexander.a.vinokurov@gmail.com>

descr   = """ScattPy package.

ScattPy provides numerical methods for solving light scattering problem
by non-spherical particles.
"""

import os
import sys

DISTNAME            = 'scikits.scattpy'
DESCRIPTION         = 'Light Scattering methods for Python'
LONG_DESCRIPTION    = descr
MAINTAINER          = 'Alexander Vinokurov'
MAINTAINER_EMAIL    = 'scattpy@googlegroups.com'
URL                 = 'http://scattpy.github.com'
LICENSE             = 'BSD'
VERSION             = '0.1.2'
DOWNLOAD_URL        = 'http://github.com/downloads/ScattPy/scikits.scattpy/scikits.scattpy-'+VERSION+'.tar.gz'

import setuptools
from numpy.distutils.core import setup

def configuration(parent_package='', top_path=None, package_name=DISTNAME):
    if os.path.exists('MANIFEST'): os.remove('MANIFEST')

    from numpy.distutils.misc_util import Configuration
    config = Configuration(package_name, parent_package, top_path,
                           version = VERSION,
                           maintainer  = MAINTAINER,
                           maintainer_email = MAINTAINER_EMAIL,
                           description = DESCRIPTION,
                           license = LICENSE,
                           url = URL,
                           download_url = DOWNLOAD_URL,
                           long_description = LONG_DESCRIPTION)

    config.set_options(
        ignore_setup_xxx_py = True,
        assume_default_configuration = True,
        delegate_options_to_subpackages = True,
        quiet = True,
        )

#    config.add_subpackage("scikits")
#    config.add_data_files("scikits/__init__.py")

#    config.add_extension('f_utils',
#                         sources=[os.path.join('src', 'f_utils.for')]
#                         )

    config.add_extension('f_utils',
                         sources=[os.path.join('src', 'f_utils.for')]
                         )
    config.add_extension('f_spheroid',
                         sources=[os.path.join('src', 'sdmn.f')]
                         )

    config.add_extension('f_radial',
        sources=[os.path.join('src', 'radial.for')],
        library_dirs=["lib"],
        libraries=["radial"]
    )

    return config

if __name__ == "__main__":
    setup(configuration = configuration,
        install_requires = 'numpy',
        namespace_packages = ['scikits'],
        packages = setuptools.find_packages(),
        include_package_data = True,
        #test_suite="tester", # for python setup.py test
        zip_safe = True, # the package can run out of an .egg file
        classifiers =
            [ 'Development Status :: 4 - Beta',
              'Environment :: Console',
              'Intended Audience :: Developers',
              'Intended Audience :: Science/Research',
              'Intended Audience :: Education',
              'License :: OSI Approved :: BSD License',
              'Topic :: Scientific/Engineering :: Mathematics',
              'Topic :: Scientific/Engineering :: Physics',
              'Topic :: Scientific/Engineering :: Astronomy', ])

UPDATE #2:

my Intel CMD piece of codes:

There were some command maybe make it working wrong,but now I don't have any idea:

python setup.py install

    ...

compiling Fortran sources
Fortran f77 compiler: C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2019.4.228\windows\bin\intel64\ifort.exe Files (x86)\IntelSWTools\compilers_and_libraries_2019.4.228\windows\bin\intel64\ifort.exe /nologo /MD /nbs /names:lowercase /assume:underscore /O1
Fortran f90 compiler: C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2019.4.228\windows\bin\intel64\ifort.exe Files (x86)\IntelSWTools\compilers_and_libraries_2019.4.228\windows\bin\intel64\ifort.exe /nologo /MD /nbs /names:lowercase /assume:underscore /O1
Fortran fix compiler: C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2019.4.228\windows\bin\intel64\ifort.exe Files (x86)\IntelSWTools\compilers_and_libraries_2019.4.228\windows\bin\intel64\ifort.exe /nologo /MD /nbs /names:lowercase /assume:underscore /O1
compile options: '-Ibuild\src.win-amd64-3.7\build\src.win-amd64-3.7\scikits\scattpy -IC:\Users\admin\AppData\Local\Programs\Python\Python37\lib\site-packages\numpy\core\include -IC:\Users\admin\AppData\Local\Programs\Python\Python37\include -IC:\Users\admin\AppData\Local\Programs\Python\Python37\include -c'
ifort.exe:f77: build\src.win-amd64-3.7\scikits\scattpy\f_radial-f2pywrappers.f
ifort.exe:f77: src\radial.for
ifort: command line warininfg #ort: co10161: unrecognized source type 'Files'; object file assumed
mmand line warning #ifort: command line warning #10161: unrecognized source type '(x86)\IntelSWTools\compilers_and_libraries_2019.4.228\windows\bin\intel64\ifort.exe'; object file assumed
10161: unifort: command line warning #10006: ignoring unknown option '/c '
recognized source type 'Files'; object file assumed
ifort: command line warning #10161: unrecognized source type '(x86)\IntelSWTools\compilers_and_libraries_2019.4.228\windows\bin\intel64\ifort.exe'; object file assumed
ifort: command line warning #10006: ignoring unknown option '/c '
ifort: warning #10145: no action performed for file 'Files'
ifort: warning #10145: no action performed for file '(x86)\IntelSWTools\compilers_and_libraries_2019.4.228\windows\bin\intel64\ifort.exe'
ifort: warning #10145: no action performed for file 'Files'
ifort: warning #10145: no action performed for file '(x86)\IntelSWTools\compilers_and_libraries_2019.4.228\windows\bin\intel64\ifort.exe'
could not find library 'radial' in directories ['lib']
...
LINK : fatal error LNK1181: cannot open input file 'radial.lib'
...
failed with exit status 1181

UPDATE #1:

As I see there is a logical corresponding relations between My Intel CMD and Setup.py as below,So maybe adjusting the PATH solve the problem:

My Intel CMD piece of code:

#1 ifort.exe:f77: src\radial.for

#2 could not find library 'radial' in directories ['lib']

with setup.py:

#1 sources=[os.path.join('src', 'radial.for')],

#2 library_dirs=["lib"], libraries=["radial"]

UPDATE #2 :

As I used MINGW gfortran instead of Intel Parallel Studio 2019 and used Microsoft Visual Studio Build Tools 2019 instead of Microsoft Vissual Studio 2019 and used latest version of Python , Do not Modifying setup.py and make some changes as UPADTE #1 and UPDATE #2 in Some modification in radial.for ,My problem Solved.


回答1:


You haven't shown the actual ifort command that was executed. The output you labeled "my Intel CMD" (which it is not) indicates that a path on the ifort command line included a space Program Files (x86) but wasn't properly quoted. This prevented your source from being compiled. It looks to me as if the python script is getting this wrong. Curiously it is invoking the compiler but also placing the path to the compiler on the command line as if it were a source file.

You will need to dig in to the (not shown here) script and determine why it is constructing a bad command line.



来源:https://stackoverflow.com/questions/57123963/could-not-find-library-radial-in-directories-lib-link-fatal-error-lnk1

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!