ModuleNotFoundError仅发生在conda环境中

时间:2017-09-12 19:50:53

标签: python anaconda conda

我经常使用conda环境进行开发,但我在conda env中遇到了奇怪的问题。我克隆了这个python repository。然后,我尝试运行一个示例,但即使有import 'package:meta/meta.dart'; import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter/rendering.dart'; void main() { runApp(new MaterialApp(home: new LoginPage())); } /// A widget that ensures it is always visible when focused. class EnsureVisibleWhenFocused extends StatefulWidget { const EnsureVisibleWhenFocused({ Key key, @required this.child, @required this.focusNode, this.curve: Curves.ease, this.duration: const Duration(milliseconds: 100), }) : super(key: key); /// The node we will monitor to determine if the child is focused final FocusNode focusNode; /// The child widget that we are wrapping final Widget child; /// The curve we will use to scroll ourselves into view. /// /// Defaults to Curves.ease. final Curve curve; /// The duration we will use to scroll ourselves into view /// /// Defaults to 100 milliseconds. final Duration duration; EnsureVisibleWhenFocusedState createState() => new EnsureVisibleWhenFocusedState(); } class EnsureVisibleWhenFocusedState extends State<EnsureVisibleWhenFocused> { @override void initState() { super.initState(); widget.focusNode.addListener(_ensureVisible); } @override void dispose() { super.dispose(); widget.focusNode.removeListener(_ensureVisible); } Future<Null> _ensureVisible() async { // Wait for the keyboard to come into view // TODO: position doesn't seem to notify listeners when metrics change, // perhaps a NotificationListener around the scrollable could avoid // the need insert a delay here. await new Future.delayed(const Duration(milliseconds: 600)); if (!widget.focusNode.hasFocus) return; final RenderObject object = context.findRenderObject(); final RenderAbstractViewport viewport = RenderAbstractViewport.of(object); assert(viewport != null); ScrollableState scrollableState = Scrollable.of(context); assert(scrollableState != null); ScrollPosition position = scrollableState.position; double alignment; if (position.pixels > viewport.getOffsetToReveal(object, 0.0)) { // Move down to the top of the viewport alignment = 0.0; } else if (position.pixels < viewport.getOffsetToReveal(object, 1.0)) { // Move up to the bottom of the viewport alignment = 1.0; } else { // No scrolling is necessary to reveal the child return; } position.ensureVisible( object, alignment: alignment, duration: widget.duration, curve: widget.curve, ); } Widget build(BuildContext context) => widget.child; } class LoginPage extends StatefulWidget { LoginPageState createState() => new LoginPageState(); } class LoginPageState extends State<LoginPage> { FocusNode _usernameFocusNode = new FocusNode(); FocusNode _passwordFocusNode = new FocusNode(); @override Widget build(BuildContext context) { return new Scaffold( appBar: new AppBar( title: new Text('Example App'), ), body: new Container( child: new ListView( physics: new NeverScrollableScrollPhysics(), key: new PageStorageKey("Divider 1"), children: <Widget>[ new Container( constraints: new BoxConstraints.expand(height: 640.0), decoration: new BoxDecoration( image: new DecorationImage( image: new NetworkImage( 'https://flutter.io/images/flutter-mark-square-100.png', ), fit: BoxFit.cover, ), ), child: new Column( children: <Widget>[ new Container( height: 300.0, ), new Center( child: new EnsureVisibleWhenFocused( focusNode: _usernameFocusNode, child: new TextFormField( focusNode: _usernameFocusNode, decoration: new InputDecoration( labelText: 'Username', ), ), ), ), new Container(height: 8.0), new Center( child: new EnsureVisibleWhenFocused( focusNode: _passwordFocusNode, child: new TextFormField( focusNode: _passwordFocusNode, obscureText: true, decoration: new InputDecoration( labelText: 'Password', ), ), ), ), new Container(), new RaisedButton( onPressed: () {}, child: new Text('Log in'), ), new Divider(), new RaisedButton( onPressed: () {}, child: new Text('Sign up'), ), ], ), ), ], ), ), ); } } 目录,它仍然失败ModuleNotFoundError

parlai

但如果我不使用conda env,我可以成功在同一目录上运行代码。在我的环境中发生了什么?

(torch) $ which python
/Users/jef/anaconda/envs/torch/bin/python
(torch) $ python -V
Python 3.6.1 :: Continuum Analytics, Inc.
(torch) $ python examples/train_model.py -m drqa -t squad -bs 32 -mf /tmp/model_drqa
Traceback (most recent call last):
  File "examples/train_model.py", line 26, in <module>
    from parlai.core.agents import create_agent
ModuleNotFoundError: No module named 'parlai'

1 个答案:

答案 0 :(得分:1)

您的软件包尚未安装。

转到下载的文件夹并输入:

python setup.py install

这会将parlai安装到您的环境中,您可以安全地删除该文件夹。

我认为这是在env之外工作的,因为您的路径中有一些链接到您放置parlai的文件夹的内容。