我在dist文件夹中安装了所有依赖项 pip install -r requirements.txt --target dist/

我使用以下命令为pythonapp创建了.whl包: Python3 setup.py bdist_车轮

并将pythonapp-1.0.0-py3-one-any.whl包安装到dist文件夹中,然后通过以下命令创建了由它创建的pyz文件

shiv --site-packages dist -e "pythonapp.__main__:main" -o ps.pyz

当我使用pythonps.pyz执行pyz包时

raise ResolverError(msg, sys.exc_info())
connexion.exceptions.ResolverError: \<ResolverError: Cannot resolve operationId "stationdetails.getstationName"! Import error was "No module named 'stationdetails'"\>

我试过使用不同的connexion分辨率,比如RelativeResolverRestyResolver,但似乎都不起作用.

我也try 删除init.py文件,但如果删除init.py文件,WHL包不会包含所有的python文件.

任何帮助都将不胜感激.

目录 struct

test
- setup.py
- dist
- pythonapp
  - __init__.py (empty)
  - __main__.py
    \_ Openpi.yml
  - stationdetails.py

stationdetails.py

import logging

def getstationName():
    pass

Openpi.yml

paths:
  /getstationName:
    get:
      tags:
        - pythonapp
      operationId: stationdetails.getstationName
      responses:
        '200':
          description: ok
import connexion

def main():
    app = connexion.App(__name__)
    app.add_api('Openpi.yml')
    app.run(host="0.0.0.0",port=8000)

if __name__ == "__main__":
    main()

Setup.py(在pythonapp文件夹之外)

from setuptools import find_packages, setup

version = '1.0.0'

setup(name='pythonapp',
      version=version,
      description='pythonapp',
      url='',
      author='test',
      author_email='',
      packages=find_packages(),
      data_files=[('pythonapp',
                   ['pythonapp/Openpi.yml'])],
      include_package_data=True,
      zip_safe=False,
      )

推荐答案

白日做梦,但试着改变一下

      operationId: stationdetails.getstationName

      operationId: pythonapp.stationdetails.getstationName

When connexion is trying 至 import stationdetails it'd fail because that module is inside pythonapp, so adding that 至 the operationId might fix it.

If the problem persists, please note that .whl and .pyz files are just zip archives, and you can open them 至 inspect if the stationdetails.py was copied successfully and the folder structure is intact.

Python-3.x相关问答推荐

math. gcd背后的算法是什么,为什么它是更快的欧几里得算法?

在Python中从列创建新行

将列表转换为 pandas 数据框,其中列表包含字典

移动所有列的数据帧值以使其单调递增

双轴上的刻度和标签

python2和python3中的列表生成器

使用 RANSAC 在激光雷达点云中查找电力线

使用 pandas 数据帧映射到中转( node )点的跨容量请求

如何使用 Selenium by class_name 从大学橄榄球数据中抓取图像 url 列表

是否将dict转换为一个数据帧,每个值都有重复的键?

python 3:如何判断一个对象是否是一个函数?

Python - 使用 OpenCV 将字节图像转换为 NumPy 数组

多个返回函数的列表理解?

创建一个可旋转的 3D 地球

为什么 Django South 1.0 使用 iteritems()?

plt.cm.get_cmap 中可以使用哪些名称?

为什么 TensorFlow 的 `tf.data` 包会减慢我的代码速度?

如何删除目录? os.removedirs 和 os.rmdir 是否只用于删除空目录?

如何将发音相似的词放在一起

使用 Python 3 读取 CSV 文件