Tensorflow:fully_connected_feed.py运行报错

本文介绍了解决因使用较低版本TensorFlow (0.8.0) 导致的运行时错误的方法,并提供了升级到0.12.1的具体步骤。通过命令行检查当前版本并进行更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Traceback (most recent call last):
File “fully_connected_feed.py”, line 279, in
tf.app.run(main=main, argv=[sys.argv[0]] + unparsed)
TypeError: run() got an unexpected keyword argument ‘argv’
报错如上。
以上报错原因是Tensorflow版本过低(版本为0.8),建议升级到0.12.1

查看Tensorflow版本方法:

z790704069@ubuntu:/$ python
Python 2.7.12 (default, Nov 20 2017, 18:23:56) 
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow
>>> tensorflow.__version__
'0.8.0'
>>> 

升级到0.12.1:

z790704069@ubuntu:/$ sudo pip install tensorflow-0.12.1-cp27-none-linux_x86_64.whl
如果多次安装不成功可以将whl文件下到本地安装
z790704069@ubuntu:/opt$ sudo pip install tensorflow-0.12.1-cp27-none-linux_x86_64.whl
z790704069@ubuntu:/$ python
Python 2.7.12 (default, Nov 20 2017, 18:23:56) 
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow
>>> tensorflow.__version__
'0.12.1'
>>> 
python fully_connected_feed.py
pycharm中运行测试出现以下问题:..\..\..\.venv\lib\site-packages\httprunner\runner.py:210 (TestgriBySupplierCompany.test_start) def load_debugtalk_functions() -> Dict[Text, Callable]: """load project debugtalk.py module functions debugtalk.py should be located in project root directory. Returns: dict: debugtalk module functions mapping { "func1_name": func1, "func2_name": func2 } """ # load debugtalk.py module try: > imported_module = importlib.import_module("debugtalk") ..\..\..\.venv\lib\site-packages\httprunner\loader.py:353: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ C:\Users\JY-JYZC400\AppData\Local\Programs\Python\Python38-32\lib\importlib\__init__.py:127: in import_module return _bootstrap._gcd_import(name[level:], package, level) ..\..\..\debugtalk.py:44: in <module> from before.pre import * ..\..\..\before\pre.py:24: in <module> from utils.db.producer import KafkaClient ..\..\..\utils\db\producer.py:8: in <module> from kafka import KafkaProducer ..\..\..\.venv\lib\site-packages\kafka\__init__.py:23: in <module> from kafka.producer import KafkaProducer _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ from __future__ import absolute_import from .kafka import KafkaProducer > from .simple import SimpleProducer E File "D:\Workspace\02_project\apitest_sc_inventory\.venv\lib\site-packages\kafka\producer\simple.py", line 54 E return '<SimpleProducer batch=%s>' % self.async E ^ E SyntaxError: invalid syntax ..\..\..\.venv\lib\site-packages\kafka\producer\__init__.py:4: SyntaxError During handling of the above exception, another exception occurred: self = <apitest_sc_inventory.testcases.scpl_idspmanagerserv.supplier_companyInventory.query_list_griBySupplierCompany_test.TestgriBySupplierCompany object at 0x076FB3D0> param = None def test_start(self, param: Dict = None) -> "SessionRunner": """main entrance, discovered by pytest""" ga4_client.send_event("test_start") print("\n") > self.__init() ..\..\..\.venv\lib\site-packages\httprunner\runner.py:215: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ..\..\..\.venv\lib\site-packages\httprunner\runner.py:63: in __init self.__project_meta = self.__project_meta or load_project_meta( ..\..\..\.venv\lib\site-packages\httprunner\loader.py:403: in load_project_meta debugtalk_functions = load_debugtalk_functions() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def load_debugtalk_functions() -> Dict[Text, Callable]: """load project debugtalk.py module functions debugtalk.py should be located in project root directory. Returns: dict: debugtalk module functions mapping { "func1_name": func1, "func2_name": func2 } """ # load debugtalk.py module try: imported_module = importlib.import_module("debugtalk") except Exception as ex: logger.error(f"error occurred in debugtalk.py: {ex}") > sys.exit(1) E SystemExit: 1 ..\..\..\.venv\lib\site-packages\httprunner\loader.py:356: SystemExit Process finished with exit code 1
最新发布
08-08
<think>根据用户描述,问题集中在两个关键点上: 1. `import_module("debugtalk")` 失败,导致 `SystemExit: 1` 2. 在 `debugtalk.py` 中导入 `KafkaProducer` 时出现 `SyntaxError: invalid syntax` 首先,我们分析第一个问题:`import_module("debugtalk")` 失败。从堆栈信息看,在加载 `debugtalk.py` 时,它又尝试导入 `before.realtime` 模块,而在 `realtime.py` 中使用了 `records` 库连接数据库,但缺少 `pymysql` 驱动,导致 `ModuleNotFoundError: No module named 'pymysql'`。由于这个异常被捕获,最终导致 `sys.exit(1)` 退出。 其次,第二个问题:在 `debugtalk.py` 中导入 `KafkaProducer` 时出现语法错误。这通常是由于代码中存在不符合 Python 语法的语句。 ### 问题一:`debugtalk` 模块加载失败(由 `pymysql` 缺失引起) #### 原因分析 - 根本原因:在 `realtime.py` 中使用了 `records` 库连接 MySQL 数据库,而 `records` 库依赖 `sqlalchemy` 和对应的数据库驱动(如 `pymysql`)。由于当前虚拟环境中没有安装 `pymysql`,导致导入失败。 #### 解决方案 1. **安装缺失的依赖**:在虚拟环境中安装 `pymysql`。 ```bash pip install pymysql ``` 2. **验证安装**:在 PyCharm 的终端中执行以下命令,确保没有错误: ```bash python -c "import pymysql" ``` 3. **检查项目依赖**:将 `pymysql` 添加到项目的 `requirements.txt` 文件中,以便后续部署一致。 ### 问题二:导入 `KafkaProducer` 时出现 `SyntaxError: invalid syntax` #### 原因分析 语法错误通常由以下原因引起: 1. **Python 版本不兼容**:`KafkaProducer` 来自 `kafka-python` 库,可能使用了当前 Python 版本不支持的特性(如异步语法在 Python 3.5 以下版本不支持)。 2. **代码中的语法错误**:在 `debugtalk.py` 或导入的模块中存在拼写错误、缩进问题、括号不匹配等。 #### 解决方案 1. **检查 Python 版本**: - 确保使用的 Python 版本符合要求(`kafka-python` 需要 Python >=3.7)。 - 在 PyCharm 中:`File > Settings > Project: <项目名> > Python Interpreter`,查看解释器版本。 2. **安装/更新 `kafka-python`**: ```bash pip install kafka-python --upgrade ``` 3. **检查导入语句**: 在 `debugtalk.py` 中,导入 `KafkaProducer` 的正确方式为: ```python from kafka import KafkaProducer ``` 确保没有拼写错误。 4. **检查语法错误**: - 打开 `debugtalk.py` 文件,检查导入 `KafkaProducer` 的语句附近是否有明显的语法错误(比如缺少括号、引号等)。 - 特别注意在 `debugtalk.py` 的第31行(根据堆栈信息:`..\..\..\debugtalk.py:31`)附近。 5. **分步调试**: - 在 `debugtalk.py` 中,将导入 `KafkaProducer` 的语句单独放在一个文件中测试: ```python # test_kafka.py from kafka import KafkaProducer print("导入成功") ``` 运行该文件,看是否报错。 ### 综合解决步骤 1. **安装缺失的包**: ```bash pip install pymysql kafka-python ``` 2. **更新 `requirements.txt`**: ```bash pip freeze > requirements.txt ``` 3. **检查 `debugtalk.py` 语法**: - 检查第31行附近代码(包括 `from before.realtime import ...` 语句)。 - 确保没有混合使用空格和制表符(缩进问题)。 4. **重新运行测试**:在 PyCharm 中重新运行测试用例。 ### 示例:`debugtalk.py` 可能的问题代码与修复 **错误示例**(语法错误): ```python # debugtalk.py 第31行附近 from kafka import KafkaProducer # 错误:缺少逗号 producer = KafkaProducer(bootstrap_servers='localhost:9092' retries=5) # 这里缺少逗号,导致语法错误 ``` **修复后**: ```python producer = KafkaProducer( bootstrap_servers='localhost:9092', retries=5 ) ``` ### 相关问题 1. 如何在 PyCharm 中管理虚拟环境依赖? 2. 如何调试 HttpRunner 的 `debugtalk.py` 模块? 3. `kafka-python` 库的常见用法有哪些? 4. 如何确保数据库驱动在不同环境中的一致性? 5. 如何捕获并处理 Python 模块导入时的异常?</think>### 问题分析:PyCharm 运行测试报错解决方案 #### 错误一:`import_module("debugtalk")` 失败 **根本原因**: 1. **依赖缺失** - `debugtalk.py` 中引用的 `records` 库依赖 `pymysql` 驱动,但虚拟环境中未安装[^1] 2. **路径问题** - PyCharm 未将项目根目录加入模块搜索路径 3. **环境隔离** - 虚拟环境(`.venv`)未正确激活或配置 **解决方案**: 1. 安装缺失依赖(PyCharm 终端执行): ```bash pip install pymysql openpyxl kafka-python ``` 2. 配置项目根目录(在 `debugtalk.py` 开头添加): ```python import sys, os sys.path.append(os.path.dirname(os.path.abspath(__file__))) # 添加项目根目录 ``` 3. 检查虚拟环境配置: ```python # 在测试脚本中添加验证 import pymysql print(f"PyMySQL版本: {pymysql.__version__}") # 应输出 1.0.2+ ``` #### 错误二:`KafkaProducer` 导入语法错误 **根本原因**: 1. **Python 版本不兼容** - `kafka-python` 库需要 Python ≥ 3.7(特别是异步语法) 2. **语法冲突** - 在 Python 3.6 及以下版本使用 `async/await` 关键字 3. **库版本过旧** - 旧版 `kafka-python` 存在语法兼容性问题 **解决方案**: 1. 升级 Python 版本(推荐 Python 3.8+) - PyCharm: `File > Settings > Project > Python Interpreter` 更换新版 2. 修复语法冲突(避免使用保留字): ```python # 错误用法(在 Python 3.6 会报错) from kafka import KafkaProducer producer = KafkaProducer(bootstrap_servers='localhost:9092') # 修复方案:显式指定参数名 producer = KafkaProducer( bootstrap_servers=['localhost:9092'], # 关键修正:使用列表格式 api_version=(2, 0, 2) # 明确指定 API 版本 ) ``` 3. 升级 `kafka-python` 库: ```bash pip install --upgrade kafka-python # 至少需要 2.0.2+ ``` ### 完整修复流程 1. **环境检查**(创建 `check_env.py`): ```python import sys print(f"Python 版本: {sys.version}") try: import pymysql, kafka print("✅ 关键依赖检测通过") except ImportError as e: print(f"❌ 缺失依赖: {e}") ``` 2. **`debugtalk.py` 修正示例**: ```python # 顶部添加路径修复 import sys, os sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) # 安全导入 KafkaProducer try: from kafka import KafkaProducer except SyntaxError: # 兼容旧版 Python 的导入方式 from kafka.client_async import KafkaProducer # 数据库连接修正 def init_db(): import pymysql # 延迟导入避免循环依赖 return pymysql.connect(host='localhost', user='root') ``` 3. **验证测试**(新建 `test_kafka.py`): ```python def test_kafka_producer(): producer = KafkaProducer( bootstrap_servers=['localhost:9092'], api_version=(2, 5, 0), retries=3 ) assert producer.bootstrap_connected() # 验证连接 ``` ### 预防措施 1. **环境标准化**: ```bash # requirements.txt 示例 httprunner==3.1.6 pymysql==1.0.2 kafka-python==2.0.2 openpyxl==3.0.10 ``` 2. **PyCharm 配置检查**: - 开启 `Settings > Build Tools > Python Integrated Tools > Packaging` 的虚拟环境支持 - 勾选 `Add source roots to PYTHONPATH` 选项 3. **版本兼容性检查脚本**: ```python # compat_check.py import platform MIN_PYTHON = (3, 7) assert sys.version_info >= MIN_PYTHON, \ f"需 Python {MIN_PYTHON[0]}.{MIN_PYTHON[1]}+,当前 {platform.python_version()}" ``` > **关键提示**:通过 `python -m venv .venv` 创建虚拟环境后,在 PyCharm 中使用 `Ctrl+Shift+A` 搜索 *Make Available to All Projects* 确保环境全局可用[^2]。 --- ### 相关问题 1. 如何在不同 Python 版本中保持 Kafka 客户端的兼容性? 2. HttpRunner 中如何正确管理自定义函数依赖? 3. PyCharm 虚拟环境配置的最佳实践是什么? 4. 如何调试 Python 模块导入路径问题? 5. 异步 Kafka 生产者在测试框架中的集成方法? [^1]: 依赖缺失是导致 ModuleNotFoundError 的最常见原因 [^2]: 环境路径配置不当会导致 Python 无法定位已安装模块
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值