我正在尝试使用pex打包python虚拟环境,但似乎无法摆脱"无法满足所有......的要求"错误.这要么我是一个完整的python newb问题,要么是要求帮助我找出pex无法满足的这些讨厌的要求.
这是我看到的错误消息:
(env-rba-deploy)my_machine:env-rba-deploy my_user$ pex -v --disable-cache -r <(pip freeze) -o foo.pex
Could not satisfy all requirements for rba-deploy==1.6.0:
rba-deploy==1.6.0
Run Code Online (Sandbox Code Playgroud)
我试图打包的python代码在这里:
我的setup.py看起来像这样:
#!/usr/bin/env python
from distutils.core import setup
setup(name='rba-deploy',
version='v1.6.0',
description='blah',
author='Dude',
author_email='blah',
url='https://www.foo.bar.baz',
package_dir = {'':'lib'},
packages=['rba','rba/response']
)
Run Code Online (Sandbox Code Playgroud)
这是点子列表和pex版本:
(env-rba-deploy)my_computer:env-rba-deploy my_user$ pex --version
pex 1.0.3
(env-rba-deploy)my_computer:env-rba-deploy my_user$ pip list
pip (7.1.2)
rba-deploy (1.6.0)
setuptools (18.2)
wheel (0.24.0)
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
将项添加到ArrayList时,如果ArrayList未初始化为字段,则会收到NullPointerException.有谁能解释为什么?
我将ArrayList初始化为字段时工作:
public class GroceryBill {
private String clerkName;
private ArrayList<Item> itemsInGroceryList = new ArrayList<Item>();
private double total;
//Constructs a grocery bill object for the given clerk
public GroceryBill(Employee Clerk) {
this.clerkName = Clerk.getEmployeeName();
this.total = 0.0;
}
public void add(Item i) {
itemsInGroceryList.add(i);
}
}
Run Code Online (Sandbox Code Playgroud)
当我将ArrayList声明为字段然后在类构造函数中初始化它时,不工作:
public class GroceryBill {
private String clerkName;
private ArrayList<Item> itemsInGroceryList;
private double total;
//Constructs a grocery bill object for the given clerk
public GroceryBill(Employee Clerk) {
this.clerkName = Clerk.getEmployeeName();
this.total = 0.0;
ArrayList<Item> …Run Code Online (Sandbox Code Playgroud) 我在创造一个游戏.游戏有GameMap.为了跟踪GameMap上的事物状态,我想为每个事物创建ArrayLists.问题是,我不想创建单独的方法来添加或从每种类型的ArrayList中删除项目.我是新手,所以当然我能想到的第一件事是'instanceof'运算符.
请记住,目前,GameMap是一个离散类,而不是接口或抽象类.目的是在初始化游戏时实例化GameMap对象.
public class GameMap {
//GameMap has a name
private String mapName;
//GameMap has rooms
private ArrayList<Room> roomsOnMap;
//GameMap has items
private ArrayList<Item> itemsOnMap;
//GameMap has people
private ArrayList<Person> peopleOnMap;
//construct GameMap with rooms, items, and people
private GameMap(String mapName, ArrayList someRooms, ArrayList someItems, ArrayList somePeople)
{
this.mapName = mapName;
this.roomsOnMap = someRooms;
this.itemsOnMap = someItems;
this.peopleOnMap = somePeople;
}
public void addObject(Object o)
{
//HOW DO I AVOID THIS?
if(o instanceof Room)
{
roomsOnMap.add((Room) o);
}
else if(o …Run Code Online (Sandbox Code Playgroud) 家庭作业:请指导我帮助指导我,而不发布完整的代码
我的导师让我们实现了LinkedList作为家庭作业.这是类的shell的标题:
public class LinkedList<T> implements Iterable<T>, Iterator<T>
Run Code Online (Sandbox Code Playgroud)
请注意,他正在实现Iterable和Iterator接口.然后我明白我需要在我的类中实现iterator(),hasNext(),next()和remove()方法.令我困惑的是,他没有将Iterator接口所需的方法放在一个单独的内部类中.以下所有方法都在LinkedList类中定义:
/*
* (non-Javadoc)
*
* @see java.lang.Iterable#iterator()
*/
@Override
public Iterator<T> iterator()
{
return null;
}
/*
* (non-Javadoc)
*
* @see java.util.Iterator#hasNext()
*/
@Override
public boolean hasNext()
{
return false;
}
/*
* (non-Javadoc)
*
* @see java.util.Iterator#next()
*/
@Override
public T next()
{
return null;
}
/*
* (non-Javadoc)
*
* @see java.util.Iterator#remove()
*/
@Override
public void remove()
{
}
Run Code Online (Sandbox Code Playgroud)
iterator()方法不应该返回类似于:
public Iterator<T> iterator()
{
return new MyClassIterator(front);
} …Run Code Online (Sandbox Code Playgroud) 作业:寻找更好的策略或方法而不是完整的代码。
在两种情况下,我有两个整数的arrayLists:
我的目标是在两种情况下都将list2的元素插入到list1中。我创建了一个可以做到这一点的方法,但是我觉得自己可以做得更好。
这是条件1的预期结果。请注意,在用尽list2的元素之后,我们将list1的元素保留在原位:
list1: [10, 20, 30, 40, 50, 60, 70]
list2: [4, 5, 6, 7]
Combined: [10, 4, 20, 5, 30, 6, 40, 7, 50, 60, 70]
Run Code Online (Sandbox Code Playgroud)
这是条件2的预期结果。由于list2包含更多元素,因此我们在list1用尽后将这些元素附加到list1上:
list1: [10, 20, 30, 40]
list2: [4, 5, 6, 7, 8, 9, 10, 11]
Combined: [10, 4, 20, 5, 30, 6, 40, 7, 8, 9, 10, 11]
Run Code Online (Sandbox Code Playgroud)
我的代码使用if-else语句来处理这两个条件。然后,我使用迭代器遍历list2的元素并将其插入list1。
public static void main(String[] Args)
{
ArrayList<Integer> numbers = new ArrayList<Integer>();
numbers.add(10);
numbers.add(20);
numbers.add(30);
numbers.add(40);
//numbers.add(50);
//numbers.add(60);
//numbers.add(70);
ArrayList<Integer> numbers2 …Run Code Online (Sandbox Code Playgroud)