prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  PyNumero support on Windows
  We need to make sure PyNumero installs/runs on Windows and make sure any extra installation steps are well documented. Some discussion on this was started in #1253. When this is resolved we also need to make sure to enable the tests currently being skipped on Windows.
  PyNumero support on Windows
  We need to make sure PyNumero installs/runs on Windows and make sure any extra installation steps are well documented. Some discussion on this was started in #1253. When this is resolved we also need to make sure to enable the tests currently being skipped on Windows.
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `pyomo/contrib/pynumero/extensions/utils.py`
  Content:
  ```
  1 #  ___________________________________________________________________________
  2 #
  3 #  Pyomo: Python Optimization Modeling Objects
  4 #  Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
  5 #  Under the terms of Contract DE-NA0003525 with National Technology and
  6 #  Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
  7 #  rights in this software.
  8 #  This software is distributed under the 3-clause BSD License.
  9 #  ___________________________________________________________________________
  10 from ctypes.util import find_library
  11 import sys
  12 import os
  13 
  14 
  15 def find_pynumero_library(library_name):
  16 
  17     asl_path = find_library(library_name)
  18     if asl_path is not None:
  19         return asl_path
  20     else:
  21         # try looking into extensions directory now
  22         file_path = os.path.abspath(__file__)
  23         dir_path = os.path.dirname(file_path)
  24 
  25         if os.name in ['nt', 'dos']:
  26             libname = 'lib/Windows/lib{}.dll'.format(library_name)
  27         elif sys.platform in ['darwin']:
  28             libname = 'lib/Darwin/lib{}.dylib'.format(library_name)
  29         else:
  30             libname = 'lib/Linux/lib{}.so'.format(library_name)
  31 
  32         asl_lib_path = os.path.join(dir_path, libname)
  33 
  34         if os.path.exists(asl_lib_path):
  35             return asl_lib_path
  36     return None
  37 
  38 
  39 def found_pynumero_libraries():
  40 
  41     p1 = find_pynumero_library('pynumero_ASL')
  42     p2 = find_pynumero_library('pynumero_SPARSE')
  43 
  44     if p1 is not None and p2 is not None:
  45         return True
  46     return False
  47
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/pyomo/contrib/pynumero/extensions/utils.py b/pyomo/contrib/pynumero/extensions/utils.py
  --- a/pyomo/contrib/pynumero/extensions/utils.py
  +++ b/pyomo/contrib/pynumero/extensions/utils.py
  @@ -14,9 +14,14 @@
   
   def find_pynumero_library(library_name):
   
  -    asl_path = find_library(library_name)
  -    if asl_path is not None:
  -        return asl_path
  +    lib_path = find_library(library_name)
  +    if lib_path is not None:
  +        return lib_path
  +
  +    # On windows the library is prefixed with 'lib'
  +    lib_path = find_library('lib'+library_name)
  +    if lib_path is not None:
  +        return lib_path
       else:
           # try looking into extensions directory now
           file_path = os.path.abspath(__file__)
  @@ -29,10 +34,10 @@
           else:
               libname = 'lib/Linux/lib{}.so'.format(library_name)
   
  -        asl_lib_path = os.path.join(dir_path, libname)
  +        lib_path = os.path.join(dir_path, libname)
   
  -        if os.path.exists(asl_lib_path):
  -            return asl_lib_path
  +        if os.path.exists(lib_path):
  +            return lib_path
       return None
  
verification_info: {"golden_diff": "diff --git a/pyomo/contrib/pynumero/extensions/utils.py b/pyomo/contrib/pynumero/extensions/utils.py\n--- a/pyomo/contrib/pynumero/extensions/utils.py\n+++ b/pyomo/contrib/pynumero/extensions/utils.py\n@@ -14,9 +14,14 @@\n \n def find_pynumero_library(library_name):\n \n-    asl_path = find_library(library_name)\n-    if asl_path is not None:\n-        return asl_path\n+    lib_path = find_library(library_name)\n+    if lib_path is not None:\n+        return lib_path\n+\n+    # On windows the library is prefixed with 'lib'\n+    lib_path = find_library('lib'+library_name)\n+    if lib_path is not None:\n+        return lib_path\n     else:\n         # try looking into extensions directory now\n         file_path = os.path.abspath(__file__)\n@@ -29,10 +34,10 @@\n         else:\n             libname = 'lib/Linux/lib{}.so'.format(library_name)\n \n-        asl_lib_path = os.path.join(dir_path, libname)\n+        lib_path = os.path.join(dir_path, libname)\n \n-        if os.path.exists(asl_lib_path):\n-            return asl_lib_path\n+        if os.path.exists(lib_path):\n+            return lib_path\n     return None\n", "issue": "PyNumero support on Windows\nWe need to make sure PyNumero installs/runs on Windows and make sure any extra installation steps are well documented. Some discussion on this was started in #1253. When this is resolved we also need to make sure to enable the tests currently being skipped on Windows.\nPyNumero support on Windows\nWe need to make sure PyNumero installs/runs on Windows and make sure any extra installation steps are well documented. Some discussion on this was started in #1253. When this is resolved we also need to make sure to enable the tests currently being skipped on Windows.\n", "before_files": [{"content": "#  ___________________________________________________________________________\n#\n#  Pyomo: Python Optimization Modeling Objects\n#  Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC\n#  Under the terms of Contract DE-NA0003525 with National Technology and\n#  Engineering Solutions of Sandia, LLC, the U.S. Government retains certain\n#  rights in this software.\n#  This software is distributed under the 3-clause BSD License.\n#  ___________________________________________________________________________\nfrom ctypes.util import find_library\nimport sys\nimport os\n\n\ndef find_pynumero_library(library_name):\n\n    asl_path = find_library(library_name)\n    if asl_path is not None:\n        return asl_path\n    else:\n        # try looking into extensions directory now\n        file_path = os.path.abspath(__file__)\n        dir_path = os.path.dirname(file_path)\n\n        if os.name in ['nt', 'dos']:\n            libname = 'lib/Windows/lib{}.dll'.format(library_name)\n        elif sys.platform in ['darwin']:\n            libname = 'lib/Darwin/lib{}.dylib'.format(library_name)\n        else:\n            libname = 'lib/Linux/lib{}.so'.format(library_name)\n\n        asl_lib_path = os.path.join(dir_path, libname)\n\n        if os.path.exists(asl_lib_path):\n            return asl_lib_path\n    return None\n\n\ndef found_pynumero_libraries():\n\n    p1 = find_pynumero_library('pynumero_ASL')\n    p2 = find_pynumero_library('pynumero_SPARSE')\n\n    if p1 is not None and p2 is not None:\n        return True\n    return False\n", "path": "pyomo/contrib/pynumero/extensions/utils.py"}], "after_files": [{"content": "#  ___________________________________________________________________________\n#\n#  Pyomo: Python Optimization Modeling Objects\n#  Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC\n#  Under the terms of Contract DE-NA0003525 with National Technology and\n#  Engineering Solutions of Sandia, LLC, the U.S. Government retains certain\n#  rights in this software.\n#  This software is distributed under the 3-clause BSD License.\n#  ___________________________________________________________________________\nfrom ctypes.util import find_library\nimport sys\nimport os\n\n\ndef find_pynumero_library(library_name):\n\n    lib_path = find_library(library_name)\n    if lib_path is not None:\n        return lib_path\n\n    # On windows the library is prefixed with 'lib'\n    lib_path = find_library('lib'+library_name)\n    if lib_path is not None:\n        return lib_path\n    else:\n        # try looking into extensions directory now\n        file_path = os.path.abspath(__file__)\n        dir_path = os.path.dirname(file_path)\n\n        if os.name in ['nt', 'dos']:\n            libname = 'lib/Windows/lib{}.dll'.format(library_name)\n        elif sys.platform in ['darwin']:\n            libname = 'lib/Darwin/lib{}.dylib'.format(library_name)\n        else:\n            libname = 'lib/Linux/lib{}.so'.format(library_name)\n\n        lib_path = os.path.join(dir_path, libname)\n\n        if os.path.exists(lib_path):\n            return lib_path\n    return None\n\n\ndef found_pynumero_libraries():\n\n    p1 = find_pynumero_library('pynumero_ASL')\n    p2 = find_pynumero_library('pynumero_SPARSE')\n\n    if p1 is not None and p2 is not None:\n        return True\n    return False\n", "path": "pyomo/contrib/pynumero/extensions/utils.py"}]}